2013-07-26 75 views
5

VC++で書かれたWin32 EXEがあります。私はC#で書かれた実装を持っています。 VC++ EXEはC#DLLを消費しています。具体的にはhttp://support.microsoft.com/kb/828736です。うまく動作しますが、デバッグできる必要があります。両方のプロジェクトは同じ.SLNにロードされますが、C#のブレークポイントは決してヒットしません。 VS2012でこれをデバッグする方法はありますか?C++ Win32からの管理対象コンポーネントのデバッグ

答えて

9

ああ、プッシュする右ボタンがわかっているなら、これは簡単です。 C++プロジェクトのプロパティで、設定プロパティ - >デバッグ - >デバッガタイプ= "混在"。

+2

Todd。あなたは私の人生を救った。 – Sherlock

0

C++プロジェクトのC#DLLへのプロジェクト参照を追加してみてください。既にそれを行っている場合は、解決策を整理して構築してください。これは問題を解決するはずです。

+0

C#コンポーネントのインスタンス化の直後にブレークポイントを設定しました。 Modulesウィンドウを見ると、DLLが「デフォルトロードアドレスでロードされなかった」と「NGenバイナリのシンボルを読み飛ばされました」とマークされています。 Symbol Load Infoをクリックすると、「このモジュールはngen.exeツールで作成された事前コンパイル済みのバイナリです。デバッガはこれらのバイナリのシンボルを読み込もうとしませんが、元のdll/exeのシンボルを読み込みます.NETランタイムによってロードされます。 [シンボルを読み込む]をクリックすると、既に知っていると思われる.PDBを参照できますが、役立たない場合があります。 –

関連する問題