我正在尝试在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 ==========
有什么想法吗? 感谢
答案 0 :(得分:4)
您未解析的外部是使用/GS
(缓冲区安全检查)编译器标志进行编译的结果,但未链接到CRT(/NODEFAULTLIB
)。如果未指定/GS
,则默认启用。您可以通过指定/GS-
来尝试禁用缓冲区安全检查。
或者,您可以尝试添加所需的代码片段。 __security_cookie
在<process.h>
中声明,并在<gs_cookie.c>
中定义,作为Visual Studio附带的CRT源的一部分。由于您还明确指定了WinMain
作为入口点,并且不依赖CRT来执行所需的初始化,因此您必须自己调用__security_init_cookie
。可能有更多要编译,但这应该作为一个起点。
答案 1 :(得分:-3)
确保您的项目未设置为unicode。你的图书馆可能会有所不同。
尝试:项目属性 - &gt;配置属性 - &gt;一般 - &gt;字符集=未设置
好的,试试这个问题:
error LNK2001: unresolved external symbol