今天学网络编程,第一个程序就难倒我了。我把书上的代码敲完后一编译,就提示: 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在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();
}};
解决方案 »
- 两个对话框激活状态的切换
- 怎么通过局域网的域名得到所有的用户名呢?
- 关于类的问题,
- 怎样键入回车后确定?
- vc++ dll中有回调函数。c#调用的问题。
- 请教:时间同步的问题
- 江湖告急,有两个程序A和B,A侦测B的按键响应,然后做出处理.请问如何用程序代码模拟程序B的按键事件,以便让A认为B发生了按键动作?解决给分!
- 为什么我写的控件(在执行时是不可见的)在VB中无法在其它控件的上层显示?
- 请大家帮忙看看关于CRichEditView的问题,我想自杀了!
- CT图像肺部结节轮廓单一提取程序或可参考书籍
- 'auxInitWindowW' : cannot convert parameter 1 from 'const char [26]' to 'LPCWSTR
- 控件、窗口、分辨率问题
WSADATA ???