3

自分で作成したプロジェクト、ソフトウェア管理プログラムをVS 2010でコンパイルしようとしています。VS6とVS2005では、完全にコンパイルされます。

1-ビジュアルスタジオ62-ビジュアルスタジオ20053-ビジュアルスタジオ2010

元のバージョンには、後で修正したいバグがいくつかありますが、まず、コンパイルする必要があります。

VS6およびVS2005では、完全にコンパイルされます。

それを必要とする各ファイル(.cpp)に対応するライブラリ#pragmacomment(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(Buffer Security Check) コンパイラ フラグを使用してコンパイルした結果ですが、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

プロジェクトがユニコードに設定されていないことを確認してください。あなたのライブラリは異なるかもしれません。
試してください:プロジェクトプロパティ - >構成プロパティ - >一般 - >文字セット=未設定

わかりました、この質問を試してください:
error LNK2001: unresolved external symbol

于 2013-01-06T18:17:31.323 に答える