WSASetSocketSecurity missing

WSASetSocketSecurity missing

本文关键字:missing WSASetSocketSecurity      更新时间:2023-10-16

Visual Studio 2015告诉我找不到WSASetSocketSecurity
dll存在,而且包含似乎也不错

我的产品包括:

windows.h
stdio.h
Wincrypt.h
Ws2tcpip.h
mstcpip.h
iostream
winsock2.h
rpc.h
ntdsapi.h
tchar.h
pragma comment(lib,"ws2_32.lib")
pragma comment(lib,"fwpuclnt.lib")
pragma comment(lib,"ntdsapi.lib")
using namespace std;

下面的3个标题需要包含在这个特定的顺序中:

  • winsock2.h
  • mstcpip.h
  • Ws2tcpip.h

从技术上讲,这是因为winsock中的宏/定义机制;winsock2.h启用winsock,mstcpip.h启用安全套接字扩展,Ws2tcpip.h定义函数。

我不确定是否有什么特殊的原因可以让它这样工作,但事实就是这样。

如果以上建议不起作用,请尝试定义_WIN32_WINNT宏,如:

#ifndef _WIN32_WINNT
    #define _WIN32_WINNT 0x06030000  
#endif

在像Ws2tcpip.h这样的头文件中,您会发现只有当_WIN32_WINNT高于某个版本时,才能访问函数WSASetSocketSecurity和其他函数。

将以上宏放在winsock2.h或相关标头之前。