void CMyVC21View::OnPtpTcp() 
{
CTCPdlg dlg;
dlg.DoModal();
}为什么不行?error C2065: 'CTCPdlg' : undeclared identifier
error C2146: syntax error : missing ';' before identifier 'dlg'
error C2065: 'dlg' : undeclared identifier
error C2228: left of '.DoModal' must have class/struct/union type

解决方案 »

  1. class CTCPdlg的头文件包含了吗?
      

  2. 仅从你给出的信息来看,只能说明CTCPdlg这个类没有申明或者它申明的头文件没有inlude进来
      

  3. #include "tcpdlg.h"
    加到里调用
    void CMyVC21View::OnPtpTcp() 
    {
    CTCPdlg dlg;
    dlg.DoModal();
    }
    的那个CPP文件的INCLUDE里面。
      

  4. 谢谢大家!
    huang_yu(HY),你好,我是把#include "tcpdlg.h"加在.CPP文件的第二行的,为什么加在上面就不可以呀,我刚才把#include "tcpdlg.h"加在了void CMyVC21View::OnPtpTcp() 前面就可以了,怎么回事呀?:>
      

  5. 我又试了下,加在第四行,第五行都可以的,就是加在下面两个的前面不行!晕哦!#include "stdafx.h"
    #include "MyVC12.h"
      

  6. #include "stdafx.h"
    #include "MyVC12.h"
    #include "tcpdlg.h"先调用的必须放在前面。
    打个比方,你想吃鸡蛋的蛋黄(访问"tcpdlg.h"中的元素),肯定要先把蛋白拨开(访问#include "MyVC12.h")。不然是要出错的。。呵呵
      

类似问题 »