Size: a a a

2021 July 03

AS

Anatoly Shirokov in Qt
...
callBackObject = this;
setCallBackFunctionForMyLibrary(&callBackFunction);
источник

v

vyacheslav@deepin:~$ in Qt
о да, я могу указать всей либе коллбек
источник

v

vyacheslav@deepin:~$ in Qt
а где мне объявить объект?
источник

AS

Anatoly Shirokov in Qt
Ну, кроме глобального объекта других кандидатов нет
источник

v

vyacheslav@deepin:~$ in Qt
туплю, да
источник

AS

Anatoly Shirokov in Qt
раз библиотека не предоставила способ задать user defined context
источник

v

vyacheslav@deepin:~$ in Qt
nprinter.cpp:34:21: error: 'this' argument to member function 'callbackSignal' has type 'volatile NPrinter', but function is not marked volatile
nprinter.h:65:10: note: 'callbackSignal' declared here
источник

v

vyacheslav@deepin:~$ in Qt
мне volatile перед функцией поставить?
источник

AS

Anatoly Shirokov in Qt
я думаю, можно убрать volatile просто, иначе она не заимитит сигнал
источник

v

vyacheslav@deepin:~$ in Qt
источник

v

vyacheslav@deepin:~$ in Qt
видимо не получится легко отделаться
источник

AS

Anatoly Shirokov in Qt
а как ты соединил сигнал c обработчиком?
источник

v

vyacheslav@deepin:~$ in Qt
просто объявил
источник

AS

Anatoly Shirokov in Qt
источник

v

vyacheslav@deepin:~$ in Qt
NPrinter* callBackObject = nullptr;

void callBackFunction(PCHAR p1, int p2, int p3, int p4) {
   if(callBackObject)
   {
       emit callBackObject->callbackSignal();
       qDebug() << p1 << p2 << p3 << p4;
   }
}

NPrinter::NPrinter(QObject *parent) : QObject(parent)
{    
callBackObject = this;
   NSetCallback(&callBackFunction);
}
источник

v

vyacheslav@deepin:~$ in Qt
сигнал я ещё никуда не подключал
источник

AS

Anatoly Shirokov in Qt
поставь Qt::QueuedConnection
источник

v

vyacheslav@deepin:~$ in Qt
просто объявлен
источник

v

vyacheslav@deepin:~$ in Qt
signals:
   void callbackSignal();
источник

AS

Anatoly Shirokov in Qt
тогда можно попробовать этитить сигнал через метаинфу
источник