__stdcall
を使用して呼び出し規則を持つ DLL 関数を実行しようとしましたがQtConcurrent::run()
、コンパイル エラーが発生します。
問題を次のコード例に減らしました。
__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]'
なぜこのようなことが起こるのでしょうか? また、最善の回避策は何ですか?