Я пытался выполнить функцию DLL, которая имеет соглашение о вызове __stdcall
с использованием QtConcurrent::run()
, но я получаю ошибки компиляции.QtConcurrent :: run() не принимает функцию __stdcall/WINAPI
Я уменьшил проблемы с этим примером кода:
__stdcall void dllFunc() {
qDebug() << "test";
}
void test() {
QtConcurrent::run(dllFunc);
}
Если удалить __stdcall
код компилируется и работает нормально. В противном случае я получаю эти ошибки компиляции:
error: invalid conversion from 'void (*)()' to 'void (*)()'
error: initializing argument 1 of 'QFuture<T> QtConcurrent::run(T (*)()) [with T = void]'
Почему это происходит, и что является лучшим обходным решением?