Size: a a a

2021 July 03

AS

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

AN

Alexander N in Qt
А если прокинуть через callbackconnector?
источник

AN

Alexander N in Qt
Там вроде контекст можно передавать
источник

v

vyacheslav@deepin:~$ in Qt
QMetaObject::invokeMethod(callBackObject, "callbackSignal", Qt::QueuedConnection, Q_ARG(PCHAR, p1), Q_ARG(int, p2),  Q_ARG(int, p3),  Q_ARG(int,p4));
источник

v

vyacheslav@deepin:~$ in Qt
таж самая ошибка
источник

AN

Alexander N in Qt
Я для коллбэков обработчиков сигналов(SIGINT etc) вроде юзал CallbackConnector, а например в mmal(который над OMX построен) есть возможность передать любой объект как void*, типа context так что зависит от библиотеки
источник

AS

Anatoly Shirokov in Qt
Здесь мы ограничены typedef void (__stdcall *NCALLBACK)(PCHAR, int, int, int);
источник

AS

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

AS

Anatoly Shirokov in Qt
поэтому такой костыль с глобальным объектом
источник

AN

Alexander N in Qt
Угу, так я понял в той либе тоже через static как-то сохраняется контекст
источник

AN

Alexander N in Qt
Типа костыль
источник

AN

Alexander N in Qt
Погоди это не твоих ли рук дело было?
источник

AS

Anatoly Shirokov in Qt
Адаптер делал @qToxa_man Антон
источник

AN

Alexander N in Qt
Аа точно
источник

AN

Alexander N in Qt
Но я поглядел там как-то вроде вся суть в

static T* obj;
источник

AS

Anatoly Shirokov in Qt
ну, это тот же глобальный объект, только немного спрятанный от глаз
источник

AS

Anatoly Shirokov in Qt
так или иначе, если мы хотим определить колбек сишной либы, либо мы делаем это средствами предоставляемыми библиотекой:
void (*CLEVERCALLBACK)(void* user_defined_context,...);
void cleverCallBack(void* user_defined_context,...) {
   QObject* obj = reinterpret_cast<QObject*>(user_defined_context);
  ...
}
...
clever_lib_set_user_defined_context(this);
либо создаем глобальный контект и через него уже дергаем то, что нам надо в C++, как мы сделали выше.
источник

AN

Alexander N in Qt
Да я понимаю это
источник

AN

Alexander N in Qt
Я потому и сказал, что там через static context кидается
источник

AS

Ansa Sequence in Qt
Всем привет! Хотел спросить, а через что лучше делать сборке в QT?

Qmake or Cmake?
источник