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!