winsock2.h与WinSock2.h两个头文件具体有什么区别?解决办法
winsock2.h与WinSock2.h两个头文件具体有什么区别?
今天学网络编程,第一个程序就难倒我了。我把书上的代码敲完后一编译,就提示: error C2065: 'WSDATA' : undeclared identifier。
我用光盘里面的代码打开一看,跟我的一样的,光盘里面的代码就能编译通过,我的就不行。找了半天发现WSDATA在winsock2.h里面定义,我第一行就包含了这个文件啊。如果改成包含WinSock2.h这个头文件,可以把WSDATA改成WSData,难道说虽然写了#include"winsock2.h",但是却没有真正包含进来?
------解决方案--------------------
你这是什么编译器这么搞笑
------解决方案--------------------
WSDATA wsaData; ??
WSADATA ???
------解决方案--------------------
这明明是一个文件。。。
------解决方案--------------------
不区分大小的
------解决方案--------------------
二楼已经说,应该是WSADATA,不是WSDATA。
今天学网络编程,第一个程序就难倒我了。我把书上的代码敲完后一编译,就提示: error C2065: 'WSDATA' : undeclared identifier。
我用光盘里面的代码打开一看,跟我的一样的,光盘里面的代码就能编译通过,我的就不行。找了半天发现WSDATA在winsock2.h里面定义,我第一行就包含了这个文件啊。如果改成包含WinSock2.h这个头文件,可以把WSDATA改成WSData,难道说虽然写了#include"winsock2.h",但是却没有真正包含进来?
#include <winsock2.h>
//#include <WinSock2.h>
#pragma comment(lib,"WS2_32")
class CInitSock
{
public:
CInitSock(BYTE minorVer=2,byte majorVer=2) //BYTE byte在两个不同的文件中而已,有何区别?
{
//初始化WS2_32.dll
WSDATA wsaData;
//WSAData wsaData; //WSAData在头文件WinSock2.h中。
WORD sockVersion=MAKEWORD(minorVer,majorVer);
if(::WSAStartup(sockVersion,&wsaData)!=0)
{
exit(0);
}
}
~CInitSock()
{
::WSACleanup();
}
};
------解决方案--------------------
你这是什么编译器这么搞笑
------解决方案--------------------
WSDATA wsaData; ??
WSADATA ???
------解决方案--------------------
这明明是一个文件。。。
------解决方案--------------------
不区分大小的
------解决方案--------------------
二楼已经说,应该是WSADATA,不是WSDATA。