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 声明:
1
2
3
|
public : static UINT WriteS( LPVOID pParam ); static UINT WriteY( LPVOID pParam); |
下面是XXXDlg.cpp实现
声明如下:
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; } |
我在点击按钮控件,做了创建线程,然后显示:
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: 无法解析的外部符号,布布扣,bubuko.com
原文:http://blog.csdn.net/u010236550/article/details/23747823