5

最初の 3 部構成の質問:

  1. ビルド時のマクロは、Visual Studio 11 で完全に具体化されていますか?
  2. IDE でそれらを編集および定義するにはどうすればよいですか?
  3. デバッグ セッション中にマクロが意味を持つようにするにはどうすればよいですか?

一連のキーストロークを記録するために使用される IDE マクロではなく、などビルド時マクロについて言及していることに注意してください。Visual Studio 10 のプロパティ ページを使用して、独自のビルド時マクロを定義しています。たとえば、[表示] > [プロパティ マネージャー] > [Microsoft.Cpp]を使用して、x64 ビルドで指定されたローカル コンピューターに Boost がインストールされている場所を定義するマクロを作成できます。 .x64.user :$(ProjectDir)$(BoostDir)

VS10 のマクロ定義

この機能を使用するのは、(たとえば) Boost を異なるコンピューターの異なる場所にインストールしている可能性があるためです。これらのプロパティはマシン固有であり、ソース管理にチェックインされていません。次に、ソース管理にチェックインされているプロジェクト設定でこれらのマクロを使用できます。そのマシン用にマクロを定義している限り、このプロジェクトをコンパイルするすべてのマシンで動作するはずです。

ここに画像の説明を入力

Visual Studio 11 Developer Preview で VS10 プロジェクトをコンパイルして実行しようとすると、これらのマクロに関していくつかの問題が発生します。

まず、VS11 には、これらのユーザー定義マクロを定義するためのインターフェイスがないようです。VS10 の場合、VS11 には何もありません。

ここに画像の説明を入力

これらのマクロは、コンパイラ/IDE 内のあるレベルで存在しているようです。なぜなら、これらのマクロがどこかに存在しなければ、エラーなしでプロジェクトをコンパイルできるからです。

次に、マクロはビルド プロセス中に存在するように見えますが、デバッグ セッション中には存在しないように見えます。VS10 で特定の DLL が存在するディレクトリを解決するために使用したマクロは、VS11 ではそれらのディレクトリを解決できず、実行時エラーが発生します。

ここに画像の説明を入力

この DLL が配置されているディレクトリは、VS10 および VS11 では次のように定義されています。

ここに画像の説明を入力

...しかし、私のマクロは、デバッグ セッション中は何の意味もないようです。

VS10 で依存していたすべてのマクロ関連機能を VS11 に戻すにはどうすればよいですか?

4

2 に答える 2

1

これを行う方法をまだ理解していない場合は、独自のプロパティシートを使用する必要があります。

新しいプロパティシートを作成し、[共通プロパティ]>[ユーザーマクロ]のセクションを使用します。

たとえば、IncludeBoost.propsというプロパティシートにBOOST_VERというマクロがあり、すべてを設定しています。

User Macros
Name       Value
BOOST_VER  1.49.0

C/C++ > General > Additional Include Directories >
"$(environment variable)\3rdParty\Boost_$(BOOST_VER)\Boost";%(AdditionalIncludeDirectories)

C/C++ > Preprocessor > Preprocessor Definitions >
BOOST_ALL_DYN_LINK;%(PreprocessorDefinitions)

Linker > General
$(env var)\3rdParty\Boost_$(BOOST_VER)\Boost\lib\$(Platform);%(AdditionalLibraryDirectories)

適切なプラットフォームも選択されていることに注意してください(Win32またはx64)。

ところで、プロパティマネージャーはCtrlキーを押しながら複数選択をクリックすることをサポートしています。

HTH。

于 2012-05-20T18:34:02.667 に答える
0

私の Microsoft.Cpp.x64.user.props は、あなたが編集したものだと思いますが、私の %blah%\AppData\Local\Microsoft\MSBuild\v4.0 にあります。私の推測では、VS11 はビルド設定にこれを使用していません。実際にすべきことは、プロジェクトで使用する独自のプロパティ シートを作成することです。

于 2012-03-01T17:23:45.677 に答える