0

プロジェクトを MSVS2005 から MSVS2010 に移植しています。MSVS2010 にソリューションをロードし、ウィザードにプロジェクトを変換させました。

私はプロパティマネージャーに出くわし、これらのプロパティシートを見つけました(上から下へ):

  • VC 7.1 からのアップグレード
  • Microsoft.Cpp.x64 (または Win32).user
  • マルチバイト文字のサポート (編集不可)
  • MFC への動的リンク (編集不可)

最後の 3 つについては理解していますが、VC 7.1 からのアップグレードの目的がわかりません。誰かが私に少し説明を与えることができますか?


PSプロパティページ「VC 7.1からのアップグレード」でC/C++、プリプロセッサ、プリプロセッサ定義 = _VC80_UPGRADE=0x0710;%(PreprocessorDefinitions)を見つけましたが、プロジェクトのプロパティでNDEBUG;WIN32;_LIB;%(PreprocessorDefinitions)を参照してください。これはどういう意味ですか?_VC80_UPGRADE=0x0710マクロとは何ですか?

4

1 に答える 1

5

プロジェクト プロパティ シートは、プロジェクトの設定を事前に設定するだけです。プロジェクトが設定をオーバーライドしない限り。プロジェクトが行うことは、「プリプロセッサ定義」設定をオーバーライドします。追加の「%(PreprocessorDefinitions)」マクロにより、プロパティ シートの定義が追加され、失われないことが保証されます。

したがって、コンパイラが見る定義はNDEBUG;WIN32;_LIB;_VC80_UPGRADE=0x0710

_VC80_UPGRADE マクロは、Visual Studio バージョン 2005 以降で古いプロジェクトを正しくコンパイルして実行するのに役立ちます。たとえば、vc/atlmfc/include/afxres.h で使用され、マニフェスト リソースが正しい ID を持つようにします。

多くの VS および Windows バージョンをスキップしているため、まったく問題がないというわけではありません。特に UAC は頭痛の種です。

于 2012-08-31T13:13:41.090 に答える