我试图使用MFC创建一个工作线程,所以下面是代码:
struct ThreadParam
{
HWND mDlg; // Note: A handle.
};
UINT TestMFCThread::Test( LPVOID pParam ){
//do work!
}
void TestMFCThread::OnBnClickedButton2()
{
ThreadParam* param = new ThreadParam;
param->mDlg = m_hWnd;
AfxBeginThread(Test, param);
}
但是它给了我这个错误:
1 IntelliSense: no instance of overloaded function "AfxBeginThread" matches the argument list
argument types are: (UINT (LPVOID pParam), ThreadParam *)
idk错了什么?这应该是对的!
发布于 2012-03-21 01:18:05
从AfxBeginThread()的文档中,您需要将第二个参数转换为LPVOID
AfxBeginThread(Test, (LPVOID) param);
并将Test
的调用约定设置为__cdecl
UINT __cdecl Test( LPVOID lParam)
发布于 2022-02-22 05:50:43
只需将您的成员函数声明为静态,就可以解决这个问题
https://stackoverflow.com/questions/9791648
复制相似问题