只是在试验,但我想知道是否有可能使这段代码工作(如编译):
void main() {
int number = 5;
DWORD(*dontThreadOnMe)(PVOID) = [](PVOID data) {
int value = *(int*) data;
cout << value << endl;
cout << "This callback executed successsfully" << endl;
};
CreateThread(NULL, NULL, dontThreadOnMe, &number, NULL, NULL);
cin.get();
}
我有一个令人烦恼的怀疑,因为LPTHREAD_START_ROUTINE
回调的标准签名是如果没有添加(但语法上非法)标签DWORD WINAPI Callback(PVOID)
,我将无法编译它。说到这里, and (for say ) 属性WINAPI
到底是什么?我从来没有真正理解为什么在某些情况下你可以在一个函数上有多个属性。WINAPI
CALLBACK
WndProc