C - 无法解析 WSADATA 类型但添加了库
C - WSADATA Type could not be resolved but libraries are added
尽管我在 mingw c 链接器库部分添加了 wsock32 库,但我在程序中遇到了 WSADATA 类型无法解析的错误。
这是代码,有什么想法吗?
#if defined WIN32
#include <winsock2.h>
#include <winsock.h>
#else
#define closesocket close
#include <sys/socket.h>
#include <arpa/inet.h>
#include <unistd.h>
#endif
#include <stdio.h>
int main(void) {
#if defined WIN32
// Initialize Winsock
WSAData wsaData;
int iResult =
WSAStartup(MAKEWORD(2,2),&wsaData);
if (iResult != 0) {
printf("Error at WSAStartup()\n");
return 0;
}
#endif
int MySocket = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP);
//process
closesocket(MySocket);
#if defined WIN32
WSACleanup();
#endif
return 0;
}
编辑:存在 winsock 和 winsock2 的双重包含,因为我试图通过添加第二个库来解决问题,但没有成功
C 中的类型名称区分大小写。所以,代替:
WSAData wsaData;
使用:
WSADATA wsaData; // Note: The type name is ALL CAPS!
尽管我在 mingw c 链接器库部分添加了 wsock32 库,但我在程序中遇到了 WSADATA 类型无法解析的错误。
这是代码,有什么想法吗?
#if defined WIN32
#include <winsock2.h>
#include <winsock.h>
#else
#define closesocket close
#include <sys/socket.h>
#include <arpa/inet.h>
#include <unistd.h>
#endif
#include <stdio.h>
int main(void) {
#if defined WIN32
// Initialize Winsock
WSAData wsaData;
int iResult =
WSAStartup(MAKEWORD(2,2),&wsaData);
if (iResult != 0) {
printf("Error at WSAStartup()\n");
return 0;
}
#endif
int MySocket = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP);
//process
closesocket(MySocket);
#if defined WIN32
WSACleanup();
#endif
return 0;
}
编辑:存在 winsock 和 winsock2 的双重包含,因为我试图通过添加第二个库来解决问题,但没有成功
C 中的类型名称区分大小写。所以,代替:
WSAData wsaData;
使用:
WSADATA wsaData; // Note: The type name is ALL CAPS!