MFC LNK2019: 无法解析的外部符号

当你遇到下面问题:

CeventThreadDlg.obj : error LNK2019: 无法解析的外部符号 "public: static unsigned int __cdecl CCeventThreadDlg::WriteY(void *)" (?WriteY@CCeventThreadDlg@@SAIPAX@Z),该符号在函数 "public: void __thiscall CCeventThreadDlg::OnBnClickedButton1(void)" (?OnBnClickedButton1@CCeventThreadDlg@@QAEXXZ) 中被引用
1>CeventThreadDlg.obj : error LNK2019: 无法解析的外部符号 "public: static unsigned int __cdecl CCeventThreadDlg::WriteS(void *)" (?WriteS@CCeventThreadDlg@@SAIPAX@Z),该符号在函数 "public: void __thiscall CCeventThreadDlg::OnBnClickedButton1(void)" (?OnBnClickedButton1@CCeventThreadDlg@@QAEXXZ) 中被引用
1>E:\code\MFC\CeventThread\Debug\CeventThread.exe : fatal error LNK1120: 2 个无法解析的外部命令
1>
1>生成失败。

 

来源:MFC 中遇到:无法解析的外部符号 [VC/MFC 进程/线程/DLL]


这个是在XXXDlg.h 声明:

C/C++ code
?
1
2
3
public :
     static  UINT  WriteS( LPVOID  pParam );
     static  UINT  WriteY( LPVOID  pParam);



下面是XXXDlg.cpp实现
声明如下:

C/C++ code
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
static  UINT  WriteS( LPVOID  pParam )
{
     CEdit *cEdit = (CEdit*)pParam;
 
     for  ( int  i =0; i<10; i++)
     {
         sy_str = "S" ;
         cEdit->SetWindowTextW(_T( "S" ));;
 
         Sleep(1000);
     }
     WriteSY.SetEvent();
     return  0;
}
static  UINT  WriteY( PVOID  pParam)
{
     CEdit *cEdit = (CEdit*)pParam;
 
     WaitForSingleObject(WriteSY,INFINITE);
 
     for  ( int  i =0; i<10; i++)
     {
         sy_str = "Y" ;
         cEdit->SetWindowTextW(_T( "S" ));;
 
         Sleep(1000);
     }
     WriteSY.SetEvent();
     return  0;
}



我在点击按钮控件,做了创建线程,然后显示:

C/C++ code
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
void  CCeventThreadDlg::OnBnClickedButton1()
{
     
     // TODO: 在此添加控件通知处理程序代码
     CWinThread *pWriteS=AfxBeginThread(WriteS,
         &C_EditS,
         THREAD_PRIORITY_NORMAL,
         0,
         CREATE_SUSPENDED);
     pWriteS->ResumeThread();
     CWinThread *pWriteY=AfxBeginThread(WriteY,
         &C_EditY,
         THREAD_PRIORITY_NORMAL,
         0,
         CREATE_SUSPENDED);
     pWriteY->ResumeThread();
}

 

你可能感兴趣的:(MFC LNK2019: 无法解析的外部符号)