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

C++ 在VS 2010 C+中编译项目时出错+;,c++,visual-studio-2010,compilation,C++,Visual Studio 2010,Compilation,我正试图编译一个我在VS2010中创建的项目,一个软件管理程序。在VS6和VS2005中,它可以完美地编译 1-visual studio 6 2-visual studio 2005 3-visual studio 2010 最初的版本有一些bug,我想稍后修复,但首先我需要编译它 使用VS 6和VS 2005,它可以完美地编译 我添加了对应于每个需要它的文件(.cpp)的库#pragma注释(lib,“bufferoverflowU.lib”) 但是,它没有解决bufferoverflowU

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

1-visual studio 6 2-visual studio 2005 3-visual studio 2010

最初的版本有一些bug,我想稍后修复,但首先我需要编译它

使用VS 6和VS 2005,它可以完美地编译

我添加了对应于每个需要它的文件(.cpp)的库#pragma注释(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 ==========
1>——Operación Volver a generar to do 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):警告C4018:“确保您的项目未设置为unicode。您的库可能不同。
尝试:项目属性->配置属性->常规->字符集=未设置

好的,试试这个问题:

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


或者,您可以尝试添加所需的代码片段<代码>\uuu安全性\uCookie
中声明,并在
中定义为Visual Studio附带的CRT源代码的一部分。由于您还明确指定了
WinMain
作为入口点,并且不依赖CRT执行所需的初始化,因此您必须调用自己。要编译此文件,可能还有很多方法,但这应该作为一个起点。

链接器错误与字符编码问题无关。我提出了一个不可行的想法,我尝试了所有可用的选项,获得了更多utf-8错误,但没有错误\u security\u cookie,感谢您的帮助。编译代码:
/OUT:“\Release/Gestion\u v1.exe”/INCREMENTAL:NO/NOLOGO“odbc32.lib”“odbccp32.lib”“ws2_32.lib”“wininet.lib”“kernel32.lib”“user32.lib”“gdi32.lib”“winspool.lib”“comdlg32.lib”“advapi32.lib”“oleaut32.lib”“uuid.lib”/NODEFAULTLIB/MANIFEST/ManifestFile:”。\Release\Gestion\Gestion\u v1.exe.intermediate.MANIFEST“/ALLOWISOLATION/MANIFESTUAC:”level='asInvoker'uiAccess='false'”/PDB:“.\Release/Gestion\u v1.PDB”/SUBSYSTEM:WINDOWS/PGD:“C:\Gestion-copia\Release\Gestion\u v1.PGD”/TLBID:1/ENTRY:“WinMain”/DYNAMICBASE/NXCOMPAT/MACHINE:X86/错误报告:QUEUE
您能将错误翻译成英语吗?”?如果这篇文章都是英文的,那么更多的读者将能够帮助诊断问题。好的,我已经翻译成英文,但不适合我,我会在另一天看到这篇文章。很抱歉,但未找到和/GS或/GS-command未找到,但找到了。@aleksander:
随Visual Studio提供,除非您使用的是快速版。它位于
\VC\crt\src
/GS
是一个编译器开关,不是命令。好的,我找到了GS_cookie.c文件,但为什么不在我的Visual Studio中链接,我使用的是Visual Studio 2010 professional(试用版)而不是express版本,但是/GS说不识别省略谢谢,我找到了gs_cookie.c,并将其复制/粘贴到我的目录中。我将这行代码包括“gs_cookie.c”,现在我得到了以下信息:
1>WDoS.obj:error LNK2019:未解析的外部符号@\u安全检查_cookie@4在函数“无符号长数据调用WDoS_HTTP(void*)”中引用(?WDoS_HTTP@@YGKPAX@Z)1>Gestion.obj:错误LNK2001:未解析的外部符号@安全检查_cookie@41>WWW.obj:错误LNK2001:未解析的外部符号@安全检查_cookie@4
@aleksander:正如我所说,这还有很多。完全禁用缓冲区安全检查要容易得多。Visual Studio 2010版本应支持
/GS
/GS-
开关。在项目上单击鼠标右键,然后选择“属性”。导航到配置属性->C/C++->代码生成。在此项下,将缓冲区安全检查从是(/GS)更改为否(/GS-)。或者,您可以在命令行的附加选项下指定
/GS-
(也可通过配置属性获得)。