C++ C++;程序cann';由于错误代码10093,无法连接到服务器
我在我的项目中使用了一个DLL文件,它在其他一些项目中使用了很多年,我确信它工作正常 当我从DLL调用方法C++ C++;程序cann';由于错误代码10093,无法连接到服务器,c++,sockets,dll,server,winsock,C++,Sockets,Dll,Server,Winsock,我在我的项目中使用了一个DLL文件,它在其他一些项目中使用了很多年,我确信它工作正常 当我从DLL调用方法f1时,会打开一个客户端会话并连接到服务器,我会遇到一个系统套接字错误。当我使用WSAGetLastError()时,它返回10093 我在谷歌上搜索了这个错误,有人建议使用“netsh winsock reset”来纠正操作系统中的一些错误配置。但是,reset可能会更改我需要的某些配置 我的操作系统是Windows10,我只需调用f1方法 如何在不更改系统中不相关的配置的情况下修复此错误
f1
时,会打开一个客户端会话并连接到服务器,我会遇到一个系统套接字错误。当我使用WSAGetLastError()时,它返回10093
我在谷歌上搜索了这个错误,有人建议使用“netsh winsock reset”
来纠正操作系统中的一些错误配置。但是,reset
可能会更改我需要的某些配置
我的操作系统是Windows10,我只需调用f1
方法
如何在不更改系统中不相关的配置的情况下修复此错误?我无法对DLL的方法进行任何更改。Winsock已被引用计数。成功调用
WSAStartup()
会增加refcount,成功调用WSACleanup()
会减少refcount
错误代码10093是wsanotinizated
,这意味着当refcount为0时,DLL正在尝试进行Winsock调用(而不是WSAStartup()
)。因此,要么WSAStartup()
根本没有被调用,要么WSACleanup()
被调用的次数至少与调用WSAStartup()
的次数相同(可能更多)
无论哪种方式,这都是一个编码错误,但无论是EXE还是DLL中的错误,我们都没有办法说,因为我们看不到您的代码。这不是netsh winsock reset
可以解决的问题。首先需要在导致错误发生的代码中修复它。这个答案表明错误在DLL中。