2

問題:

開発者は、ビルドが開始されるたびに新しいプログラム データベース ファイル (PDB) を作成したいと考えています。

どのシナリオの場合:

C++ ホットスワップ、オンザフライでのデバッグ、メイン プログラムがコードを実行するための DLL コード プラグイン。

4

1 に答える 1

5

解決:

  1. コード プロジェクトを開きます。
  2. プロジェクトのプロパティを開きます。
  3. 左ペインで、[構成プロパティ]ノードを展開します。
  4. リンカーノードを展開します。
  5. [デバッグ]ノードをクリックします。
  6. 右側のウィンドウで、Generate Program Database Fileエントリを見つけます。
  7. 値を次のように置き換えます。

    $(OutDir)$(TargetName)-$([System.DateTime]::Now.ToString("HH_mm_ss_fff")).pdb

  8. [適用]をクリックしてから [ OK]をクリックします。

C++ ホットスワップ (オンザフライでのデバッグ) モードを開始するには:

  1. Visual Studio 2013 の新しいソリューションに 2 つのプロジェクトを追加します。
  2. ビルド時にプロジェクトの 1 つが DLL を生成するようにします。
  3. プログラムを作成します。
  4. DLL の場合、プログラムの実行中に常に呼び出される関数を作成します。関数を DLL にエクスポートします。
  5. ビルドごとに新しい PDB ファイルを生成するように DLL プロジェクトを設定します。
  6. すべてのプロジェクトをコンパイルしてビルドします。
  7. デバッグなしでプログラムを開始します (CTRL+F5)。
  8. エクスポートされた DLL 関数を更新します。
  9. DLL プロジェクトを一度ビルドします。(CTRL+SHIFT+B)。
  10. プログラムは、2 回目のビルドの後、関数の実行をすぐに更新する必要があります。

C++ ホットスワップのデモ。 GIF の HTML5 バージョンはこちら。

ノート:

  • 過剰な PDB ファイルを取り除くために、プロジェクト プロパティに次の値を追加できます。これは、 Build EventsノードのPre-Build Eventエントリに追加できます。

    del "$(OutDir)*.pdb"

于 2015-01-18T23:56:20.247 に答える