Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从winsock.h升级到winsock2.h后出错_C_Sockets_Visual Studio 2012 - Fatal编程技术网

从winsock.h升级到winsock2.h后出错

从winsock.h升级到winsock2.h后出错,c,sockets,visual-studio-2012,C,Sockets,Visual Studio 2012,我有一个C语言的程序,可以重定向tcp端口。我以前使用的是winsock.h,应用程序运行良好 我现在加入了winsock2.h而不是winsock.h,以获得WSAioctl()等高级函数,这些函数在winsock.h中不可用 我已经按照正确的顺序包括了winsock2.h,即在windows.h之前,这样windows.h就不包括winsock.h。我还尝试了避免winsock.h和winsock2.h冲突的其他方法,这些冲突在windows.h之前定义了WIN32\u LEAN\u和\u

我有一个C语言的程序,可以重定向tcp端口。我以前使用的是
winsock.h
,应用程序运行良好

我现在加入了winsock2.h而不是
winsock.h
,以获得
WSAioctl()
等高级函数,这些函数在
winsock.h
中不可用

我已经按照正确的顺序包括了
winsock2.h
,即在
windows.h
之前,这样
windows.h
就不包括
winsock.h
。我还尝试了避免
winsock.h
winsock2.h
冲突的其他方法,这些冲突在
windows.h
之前定义了
WIN32\u LEAN\u和\u MEAN

我还链接了
ws2_32.lib
,而不是
wsock32.lib

问题:应用程序使用
winsock2.h
成功构建,没有错误,但当我在调试模式(或其他模式)下运行程序时,它崩溃并触发多个断点,其中一个断点位于
\u CrtIsValidHeapPointer()
。 这些例外情况的可能原因是什么


平台:64位Windows 7 Professional上的VS2012。

您的错误与Winsock无关(除非您的代码只是错误地使用Winsock2函数),但还有其他问题。由于您看到运行时错误,是哪一行代码引起了错误?当我尝试使用
closesocket(s)
关闭套接字时,会出现以下错误。错误:
HEAP[rinetd.exe]:为RtlValidateHeap(00470000,004B47A0)rinetd.exe指定的无效地址已触发断点。
请提供一个复制错误的地址。