c++ - 在 VS 2010 C++ 中编译项目时出错

标签 c++ visual-studio-2010 compilation

我正在尝试在 VS 2010 中编译我创建的一个项目,一个软件管理程序。在 VS6 和 VS2005 中,它编译完美。

1 - Visual Studio 6 2 - Visual Studio 2005 3 - Visual Studio 2010

原始版本有一些错误,我想稍后修复,但首先我需要它进行编译。

使用 VS 6 和 VS 2005 可以完美编译。

我添加了库 #pragma comment(lib, "bufferoverflowU.lib") 对应于每个需要它的文件 (.cpp)

但是并没有用bufferoverflowU.lib解决任何问题

错误是:

1>------ Operación Volver a generar todo iniciada: proyecto: Gestion_v1, configuración: Release Win32 ------
1> StdAfx.cpp
1> WDoS.cpp
1> Helpers.cpp
1> Gestion.cpp
1> WWW.cpp
1>WWW.cpp(141): warning C4018: '<' : no coinciden signed/unsigned
1>WWW.cpp(136): warning C4101: 'dwTmp' : variable local sin referencia
1>WWW.cpp(481): warning C4244: '=' : conversion from 'DWORD' to 'char'; possible loss of data
1>WWW.cpp(482): warning C4244: '=' : conversion from 'DWORD' to 'char'; possible loss of data
1> Generando código...
1>LINK : warning LNK4108: /ALIGN specified without /DRIVER; image may not run
1>WDoS.obj : error LNK2019: unresolved external symbol ___security_cookie referenced in function "unsigned long __stdcall WDoS_HTTP(void *)" (?WDoS_HTTP@@YGKPAX@Z)
1>Gstion.obj : error LNK2001: unresolved external symbol ___security_cookie
1>WWW.obj : error LNK2001: unresolved external symbol ___security_cookie
1>WDoS.obj : error LNK2019: unresolved external symbol @__security_check_cookie@4 referenced in function "unsigned long __stdcall WDoS_HTTP(void *)" (?WDoS_HTTP@@YGKPAX@Z)
1>Gestion.obj : error LNK2001: unresolved external symbol @__security_check_cookie@4 
1>WWW.obj : error LNK2001: unresolved external symbol @__security_check_cookie@4
1>.\Release/Gestion_v1.exe : fatal error LNK1120: 2 unresolved externals
========== Rebuild All: 0 succeeded, 1 failed, 0 skipped ==========

有什么想法吗? 谢谢

最佳答案

您 Unresolved external 问题是使用 /GS 编译的结果(缓冲区安全检查)编译器标志,但不链接 CRT ( /NODEFAULTLIB )。如果/GS未指定它默认为启用。您可以尝试通过指定 /GS- 来禁用缓冲区安全检查。 .

或者,您可以尝试添加您需要的代码片段。 __security_cookie<process.h> 中声明并在 <gs_cookie.c> 中定义作为 Visual Studio 附带的 CRT 源的一部分。由于您还明确指定了 WinMain作为入口点并且不依赖 CRT 来执行所需的初始化,您将必须调用 __security_init_cookie 你自己。可能还有更多内容需要编译,但这应该作为一个起点。

关于c++ - 在 VS 2010 C++ 中编译项目时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14183621/

相关文章:

regex - 您如何强制 Perl 重新编译使用 "/o"按需编译的正则表达式?

C++ 无法计算其中包含 vector 大小的公式?

C++ 外部模板实例化和 typedef (gcc)

c# - 是否有 Visual Studio 或 Resharper 击键可将当前行复制到剪贴板?

c# - ListView 中指定列的粗体文本不起作用

c++ - Make 期间的链接器错误

c++ - 如何避免在实现中重复类名和模板调用?

c++ - 二进制加法从左到右进位

visual-studio-2010 - Visual Studio 在哪里保存构建前/构建后脚本?

python - 带有 OpenCV undefined symbol 的 Tensorflow 自定义操作