自从我开始使用Winsock以来,除了麻烦什么都没有。我似乎无法初始化Winsock来挽救我的生命。我并不是要求任何人来编写整个程序(因为我知道这有多烦人),我只是需要使用Winsock的帮助。我已经尝试了几个编译器,但总是得到奇怪的错误。
1>Compiling...
1>main.cpp
1>Linking...
1>main.obj : error LNK2019: unresolved external symbol __imp__WSACleanup@0 referenced in function _main
1>main.obj : error LNK2019: unresolved external symbol __imp__WSAStartup@8 referenced in function _main
1>C:\Users\Rory\ProjectX\ProjectX\Debug\ProjectX.exe : fatal error LNK1120: 2 unresolved externals
1>Build log was saved at "file://c:\Users\Rory\ProjectX\ProjectX\ProjectX\Debug\BuildLog.htm"
1>ProjectX - 3 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========下面是我的代码:
#include <cstdlib>
#include <iostream>
#include <string.h>
#include <winsock2.h>
int iReqWinsockVer = 2;
using namespace std;
int main()
{
cout<<"Initializing Winsock 2...\n";
// WINSOCK INITIALIZATION
WSADATA wsaData;
if (WSAStartup(MAKEWORD(iReqWinsockVer,0), &wsaData)==0) {
// Check if major version is at least iReqWinsockVer
if (LOBYTE(wsaData.wVersion) >= iReqWinsockVer) {
// Network stuff here
}
else {
// Required version not available
}
// Cleanup winsock
if (WSACleanup()!=0) {
// cleanup failed
}
}
else {
// startup failed
}
// END WINSOCK INITIALIZATION
system("PAUSE");
}发布于 2012-03-22 19:12:48
添加ws2_32.lib作为链接器输入。
项目属性->链接器->输入页面
在该页面上,您将看到其他依赖项。把它放在那里-注意,库名称应该用空格分隔,或者你可以直接将这一行添加到源文件中:
#pragma comment(lib, "ws2_32.lib") 发布于 2014-02-22 17:59:04
在包含窗口标题之前,不要忘记定义WINDOWS_LEAN_AND_MEAN宏。否则你会得到大量的错误。这是因为windows头文件默认包含旧的winsock版本。它包含了很多与新的winsock2头冲突的东西。但是通过定义该宏,旧的winsock头被排除在外。
https://stackoverflow.com/questions/9821108
复制相似问题