ни один экземпляр перегруженной функции "AfxBeginThread" не соответствует списку аргументов - PullRequest
1 голос
/ 20 марта 2012

я пытаюсь создать рабочий поток, используя 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 *)

ИДК, что не так, это должно быть правильно!

1 Ответ

1 голос
/ 20 марта 2012

Из документации для AfxBeginThread () вам нужно привести второй аргумент к LPVOID:

AfxBeginThread(Test, (LPVOID) param);

и установить соглашение о вызовах Test на __cdecl:

UINT __cdecl Test( LPVOID lParam)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...