静态库调用错误:异常:"A null reference pointer was passed to the stub."(使用 winsock2 Win32)
static lib call error: Exception: "A null reference pointer was passed to the stub." (using winsock2 Win32)
我创建了一个运行良好的windows控制台应用程序,但试图在另一个静态库中使用Winsock2(Ws2_32.lib)(作为更大项目的一部分)会引发异常。
代码编译良好,exe运行良好。调用WSAStartup()和gethostbyname()可以正常工作,但随后调用gethostbyname()原因:
First-chance exception at 0x76e1c41f in TestApp.exe: 0x000006F4: A null reference pointer was passed to the stub.
这导致:
First-chance exception at 0x7505cd99 (rpcrt4.dll) in TestApp.exe: 0xC0020043: An internal error occurred in RPC.
我仔细检查了调用代码是否相同,并检查了链接器是否使用了*.h*.dll和*.lib的正确版本——据我所知。我比较了这两个应用程序的项目设置,没有发现任何异常。我还确保项目中的所有库都使用相同的字符集。
[编辑:在发现两个应用程序的差异后,懊恼只是调试器异常是否打开]
我可以继续跳过异常,代码似乎正在运行,但函数中不再有有效的调试符号。这不是崩溃,但我当然不希望每次调用函数时都有异常——我显然可以关闭异常,但它们不是在告诉我出了问题吗?
我目前正在尝试从MSDN符号服务器/SymChk.exe 获取ws2_32.lib和其他模块的最新符号
[EDIT 2-最终获得堆栈的符号]
> rpcrt4.dll!_NdrClientCall2() + 0x301 bytes
FWPUCLNT.DLL!_FwppProxyEngineOpen@24() + 0x19 bytes
FWPUCLNT.DLL!_FwppSessionCreate@20() + 0xd1 bytes
FWPUCLNT.DLL!_FwpmEngineOpen0@20() + 0x29 bytes
FWPUCLNT.DLL!_FwpIsNameCacheEnabledForProcess@4() + 0x7778 bytes
FWPUCLNT.DLL!_FwpmProcessNameResolutionEvent0@16() + 0x74 bytes
FWPUCLNT.DLL!_NamespaceCallout@12() + 0x72 bytes
ws2_32.dll!PrepareNamespaceCalloutBlob() + 0x153 bytes
ws2_32.dll!getxyDataEnt() + 0x74a7 bytes
ws2_32.dll!_gethostbyname@4() + 0xe7 bytes
我得到了这个异常"0x000006F4: A null reference pointer was passed to the stub."
事实证明,禁用我的第三方防火墙阻止了引发异常。也许防火墙正在拦截请求并将某些事情搞砸。
可能值得一试:)
- 这在C++ "It does not own the underlying data, and so is cheap to copy or assign"中意味着什么
- 加载安全区图像"A device attached to the system is not functioning"
- 圆形与方形碰撞检测以及需要响应C++ |OpenGL。我的问题就是这个"I need to keep the circle outside the square"
- C++:分析包含表达式的字符串"access to the multidimensinal array"
- 如何处理"Cmake Error: Unable to find the requested Boost libraries"?
- SDL_Init失败并显示'SDL_Error: Failed to connect to the Mir Server'
- "The order of evaluation of expressions is left to right."是什么意思
- xlC 警告,"The NOSTRICT option has the potential to alter the semantics of a program"
- 运行提升 bcp 工具时出错:"The Boost path appears to have been incorrectly set"
- C# DLL 导入失败:"The application has failed to start because its side-by-side configuration is incorrect
- 将"pointer to a child class"追加到"pointer to the parent class"向量中
- 告诉海湾合作委员会"I want to use SSE4.1, but ONLY in the places I want!"
- 错误: "Unable to find the DLL xyz.dll!" Visual Studio 2010
- 如果函数包含在命名空间中,则"go to beginning of the function"不起作用 (C++)
- Box2d c++ what is the similar to ActionScript b2Body SetPosi
- 如何在 C/C++ 中"use the write() system call to read from the page (writing to a dummy pipe() file descri
- 预处理器:"The definition also permits you to split an identifier at any position and get exactly two tok
- C++ " I want to add a new string at the end of the file How Can I do it? please help"中的文件处理
- 打开简历,C++:"Error: The application was unable to start correctly (0x0000005)."
- SFML 2.1 和 Xcode 4.6.3 - "The specified SDK " 当前的 OS X " does not appear to have all of the necessar