Windows 8.1 项目的 Windows 10 Visual Studio 2013 生成错误
Windows 10 Visual Studio 2013 build error for Windows 8.1 project
使用 VS2013 在Windows 10
上构建win8.1
项目时出错
'RAIG3D.Windows.exe' (Win32): Loaded 'C:WindowsSysWOW64mswsock.dll'. Symbols loaded.
Debug Assertion Failed!
Program: ...win8.1-universalDebugRAIG3D.WindowsAppXRAIG3D.Windows.exe
File: f:ddvctoolscrtcrtw32miscdbgheap.c
Line: 1424
Expression: _pFirstBlock == pHead
我在链接到项目的.dll
中使用winsock2.h
。它是一个自定义网络库,我试图编写。它在windows
分支上
https://github.com/damorton/libsocket/tree/windows
该库适用于win32调试程序,但对于win8.1,它给出了上述错误
这不是构建错误,而是运行时错误。具体来说,一个断言已经触发。这是消息告诉您的内容:
调试断言失败!
刚刚执行了一段代码,它使用 assert
宏的某种变体来捕获可能的错误。它抓住了一个。这很好。更好的是,它会告诉您断言宏的触发位置:
程序:。。。win8.1-universal\Debug\RAIG3D.Windows\AppX\RAIG3D.视窗.exe
File: f:\dd\vctools\crt\crtw32\misc\dbgheap.c
行: 1424
这是您的程序,但不是您的代码文件。因此,这不是您编写的断言,而是Microsoft开发人员放入其 C 运行时库例程的断言。具体来说,在dbgheap.c
文件中,这表明它与调试堆有关,调试堆用于在调试版本中分配内存。
该消息还告诉您表达式是什么,结果意外错误,因此触发了断言:
表达式:_pFirstBlock == pHead
看起来两个应该相等的指针实际上并不相等。
如果按下弹出的消息框上的"重试"按钮,则可以使用调试器中断代码,并在上下文中查看有问题的代码行。您还将有一个完整的调用堆栈可供查看。
调用堆栈有助于在调用触发此断言的库代码之前查看正在执行的代码行。此断言是 CRT 作者放入其内存分配例程中的内部一致性检查。如果你触发了它,你就在你的应用程序内部做了一些严重的错误。
如果我冒昧地猜测,在没有比我更多的信息的情况下,我猜你可能正在尝试混合引用不同版本的 CRT 的可执行文件和库。这是不支持的,可能会导致严重的问题。不同版本的 CRT 具有不同的对象大小、内存布局、静态变量等。你很幸运,这次它被一个断言抓住了。检查所有项目是否面向相同版本的 CRT,包括生成 DLL 和 LIB 的项目。从头开始进行完全重建,以确保它们都已更新。
- 如何在"XAML for Windows Embedded (Compact 2013)"中切换图像
- cv:内存位置的异常 - 运行 openCV 代码 Visual Studio 2013 & Visual Studio 2017 - Windows 7
- 使用 Visual Studio 2013 编译 GDCM dlls 2.8.4 for Windows
- 在Windows Compact 2013中标记存储量
- OpenGL GLut 与 Windows 8 64 位上的 Visual Studio 2013 链接问题
- 如何使Ws2_32.lib与针对Windows 8.1的VS 2013项目协同工作
- OpenCV 2.4.7.2 + windows 8.1 + Visual Studio 2013 == Error
- 无法在VS 2013、Windows 8.1中创建Win32控制台应用程序
- 从Windows上的Visual Studio 2013到Ubuntu的C++OpenCV交叉编译
- 在Visual Studio Professional 2013中编译的C++程序将无法与Windows XP SP3一
- Visual Studio 2013 中的 Windows XP 和 Windows Server 2003 支持
- Windows Embedded Compact 2013 - 初始应用程序焦点
- Windows 8.1 项目的 Windows 10 Visual Studio 2013 生成错误
- 使用 clang 和 Visual Studio 2013 运行时从 OS X 交叉编译到 Windows
- 远程调试 Windows 8.1 驱动程序 Visual Studio 2013
- 使用Visual Studio 2013 pro更新3(或4)在windows 8.1上构建chromium
- 在Windows、Visual Studio 2013上使用带有cmake库的谷歌protobuf
- 缓冲区中的实时数据存储@Visual Studio 2013 Professional C++Windows 7
- 如何使用Visual Studio 2012和“英特尔编译器XE 2013”构建可在Windows XP中运行的可执行文
- 使用Visual Studio 2013在Windows 10上使用contrib模块为Python编译OpenCV