头文件如下:
class API
{
private:
SOCKET _sSocket;
     .
public:
  int Init( char *spid, char *passwd, char *ismg, unsigned short port);
}在主窗口无任何调用时正常编译并运行,添加如下代码后出错:
API api;                                  //只要有这一句就会出错
int err;
err = api.Init("","","", atoi(PORT));错误提示如下:
d:\工作代码\visual c++  项目\interface\api.h(22) : error C2146: syntax error : missing ';' before identifier '_sSocket'
d:\工作代码\visual c++  项目\interface\api.h(22) : error C2501: 'SOCKET' : missing storage-class or type specifiers
d:\工作代码\visual c++  项目\interface\capi.h(22) : error C2501: '_sSocket' : missing storage-class or type specifiers请问是怎么回事呢?

解决方案 »

  1.   

    在stdafx.h中添加#include "Winsock2.h"
    还有你的定义后面有没有漏掉;号??
      

  2.   

    还需要加载WIN SOCKET调用库
    #pramga comment(lib,"ws2_32.lib")
      

  3.   

    class API
    {
    private:
    SOCKET_sSocket;
         .
    public:
      intInit( char *spid, char *passwd, char *ismg, unsigned short port);
    };类定义结束后,少了分号
      

  4.   

    因为是只拷贝了部分源码出来,所以可能说得不清楚。类定义结束后是有分号的。Winsock2.h也是有include的,在链接时也加入了ws2_32.lib。而且,如果我单独编译这个文件,是没有任何报错的。只是在我引用这个类的时候,才会出现这个错误。
      

  5.   

    郁闷~ 自己解决了。原来include的时候要写明是大写,之前我写成是小写的了