Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ QtConcurrent::run()不';t接受\uu stdcall/WINAPI函数_C++_Qt_Compiler Errors_Stdcall_Qtconcurrent - Fatal编程技术网

C++ QtConcurrent::run()不';t接受\uu stdcall/WINAPI函数

C++ QtConcurrent::run()不';t接受\uu stdcall/WINAPI函数,c++,qt,compiler-errors,stdcall,qtconcurrent,C++,Qt,Compiler Errors,Stdcall,Qtconcurrent,我试图使用QtConcurrent::run()执行一个具有调用约定的DLL函数,但出现编译错误 我已将问题简化为以下示例代码: __stdcall void dllFunc() { qDebug() << "test"; } void test() { QtConcurrent::run(dllFunc); } 为什么会发生这种情况,最好的解决办法是什么?好吧,为了解决这个问题,我最终使用了一个具有相同签名但没有\uu stdcall约定的包装函数: __std

我试图使用
QtConcurrent::run()
执行一个具有调用约定的DLL函数,但出现编译错误

我已将问题简化为以下示例代码:

__stdcall void dllFunc() {
    qDebug() << "test";
}

void test() {
    QtConcurrent::run(dllFunc);
}

为什么会发生这种情况,最好的解决办法是什么?

好吧,为了解决这个问题,我最终使用了一个具有相同签名但没有
\uu stdcall
约定的包装函数:

__stdcall int dllFunc(int param1, void *param2) {
    qDebug() << "test";
    return 0;
}

int dllFuncWrapper(int param1, void *param2) {
    return dllFunc(param1, param2);
}

void test() {
    QtConcurrent::run(dllFuncWrapper);
}
\u stdcall int dllFunc(int param1,void*param2){
qDebug()
__stdcall int dllFunc(int param1, void *param2) {
    qDebug() << "test";
    return 0;
}

int dllFuncWrapper(int param1, void *param2) {
    return dllFunc(param1, param2);
}

void test() {
    QtConcurrent::run(dllFuncWrapper);
}