Blog / 阅读

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

by admin on 2014-04-15 12:39:51 in ,



当你遇到下面问题:
[cpp] view plaincopyprint?
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

public:
    static UINT WriteS(LPVOID pParam );
    static UINT WriteY(LPVOID pParam);

下面是XXXDlg.cpp实现
声明如下:
C/C++ code

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
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();
}
 


写评论

相关文章

上一篇:JAVA反射机制

下一篇:DES加密算法详解- -

评论

写评论

* 必填.

分享

栏目

赞助商


热门文章

Tag 云