3

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

1 - 视觉工作室 6 2 - 视觉工作室 2005 3 - 视觉工作室 2010

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

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

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

但是,它没有用 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 ==========

有任何想法吗?谢谢

4

2 回答 2

6

您未解决的外部是使用/GS(缓冲区安全检查)编译器标志编译的结果,但没有链接到 CRT(/NODEFAULTLIB)。如果/GS未指定,则默认启用。您可以尝试通过指定来禁用缓冲区安全检查/GS-

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

于 2013-01-08T18:30:57.350 回答
-3

确保您的项目未设置为 unicode。您的图书馆可能会有所不同。
尝试:项目属性->配置属性->常规->字符集=未设置

好的,试试这个问题:
error LNK2001: unresolved external symbol

于 2013-01-06T18:17:31.323 回答