使用MFC创建一个对话框程序,工程名为 test002,
手工添加了一个类MySocket,位于mysocket.h 和 mysocket.cpp 中,
但编译时,出现错误 e:\test002\mysocket.h(23) : error C2143: syntax error : missing ';' before '*' 
e:\test002\mysocket.h(23) : error C2501: 'CTest002Dlg' : missing storage-class or type specifiers 
e:\test002\mysocket.h(23) : error C2501: 'm_pTest002Dlg' : missing storage-class or type specifiers 23行就是 socket.h 中 的 class MySocket : public CSocket /*****socket.h代码片断*****/ 
#include "test002dlg.h" 
#include <afxsock.h> class MySocket : public CSocket 

public: 
CTest002Dlg *m_pTest002Dlg; 
……………… 
}; /*****test002dlg.h代码片断*****/ 
class CTest002Dlg : public CDialog 

……………… 
};请问如何解决这个问题?
谢谢

解决方案 »

  1.   

    把class CTest002Dlg的定义写在class MySocket的前面
      

  2.   

    class MySocket : public CSocket 
    前面还定义了什么东西? 缺少分号。
      

  3.   

    感谢两位这么快回复,不过应该不是这个问题。to guo_wei ,
    class CTest002Dlg 和 class MySocket 不在同一个文件里面,
    而是用#include 包含进来的,包含语句在 MySocket前面
    to dyw ,
    class MySocket : public CSocket  前面只有一些条件编译选项(VC6自动生成的)、两个头文件和自动生成的注释
      

  4.   

    1。右键菜单中有一个打开"test002dlg.h"看能不能打开?如果不能打开,则说明LZ没有把这个文件加载进来,
    需要添加进来。
      

  5.   

    to shanhqk ,
    右击能打开,甚至我在CTest002Dlg 上右击,也能跳转到 CTest002Dlg的定义,
    在下面通过m_pTest002Dlg-> 也有成员提示出来to guo_wei,
    我在MySocket中,把和 CTest002Dlg有关内容注释掉,程序是正常运行的,如果少分号,应该是不能正常的吧?
      

  6.   

    这个问题我也遇到过,你是不是在Test002Dlg.h文件中也包含了#include"mysocket.h"?
    如果相互包含,就会出现这个问题.
      

  7.   

    jiangzy1109 一语中的,就是这个问题,太感谢了