error C2440: “类型转换”: 无法从“overloaded-function”转换为“LPTHREAD_START_ROUTINE”
场景:error C2440: “类型转换”: 无法从“overloaded-function”转换为“LPTHREAD_START_ROUTINE”,该怎么处理
error C2440: “类型转换”: 无法从“overloaded-function”转换为“LPTHREAD_START_ROUTINE”
error C2440: “类型转换”: 无法从“overloaded-function”转换为“LPTHREAD_START_ROUTINE”
------解决方案--------------------
你是不是把类的非静态成员函数传给CreateThread了?
如果是的话,你可以用静态成员函数包装一下,然后把这个静态成员函数跟对象的指针(this)同时传给CreateThread,然后在函数中恢复出this指针,再从对象指针上调用你的非静态成员函数。
问题就在于没有对象(或指向对象的引用、指针),非静态成员函数是没有意义的。
error C2440: “类型转换”: 无法从“overloaded-function”转换为“LPTHREAD_START_ROUTINE”
- C/C++ code
void CscanTestDlg::OnBnClickedScan() { // TODO: 在此添加控件通知处理程序代码 hThrd=NULL; if(!hThrd) { hThrd=CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)GetDateFromScannerThread,NULL,0,NULL); } }
error C2440: “类型转换”: 无法从“overloaded-function”转换为“LPTHREAD_START_ROUTINE”
------解决方案--------------------
你是不是把类的非静态成员函数传给CreateThread了?
如果是的话,你可以用静态成员函数包装一下,然后把这个静态成员函数跟对象的指针(this)同时传给CreateThread,然后在函数中恢复出this指针,再从对象指针上调用你的非静态成员函数。
问题就在于没有对象(或指向对象的引用、指针),非静态成员函数是没有意义的。