2012-03-27 11 views
1

私が作成したネイティブC++ COM DLLのいくつかの問題をデバッグしようとしており、これからVisual Studio(2008)デバッガを起動したいとします。このDLLは私が与えられた別のDLLによって呼び出されるので、基本的に私のコードはこれを介して別のアプリケーションにプラグインします。とにかく、過去に私はこのDLLを作成するためにC#を使い、System.Diagnostics.Debugger.Break()メソッドを使用することができました。これに似たものがありますか?私はDebugBreakと__debugbreakについていくつかの記事を見ましたが、これはうまくいかないように見えました。デバッガをC++コードで起動します

EDT:私は以下paulsm4の助言に従い、ブレークポイントが機能しなかったことが判明し、それは私に言うだろう:「ブレークポイントが現在ヒットされることはありませんませ記号は、このドキュメントのためにロードされていません。」が理想的

答えて

1

COM/ActiveX .dllのプロジェクトソースを取得します。

この場合、.dllコードにブレークポイントを設定し、デバッガでプログラムを実行するだけです。それだけです。

「マネージコード」(例:C#/ .net .exeや.dll)と「ネイティブコード」(COM/ActiveX .dllなど)の区別に注意してください。 MSVS2008の下に「ネイティブコード」をデバッグするには、「混合モード」を指定する必要があります。詳細については、

http://msdn.microsoft.com/en-us/library/kbaht4dh%28v=vs.90%29.aspx

+0

感謝を。私はそれを試してみましょう。 COM .dllのソースコードはありますが、それ以外のものはありません。私はビジュアルスタジオデバッガを使用するのが初めてであるので、ここで大きな疑問を持っています。デバッガでどのようにプログラムを実行するのですか?私が実行可能ファイルに使用したときに、私はデバッグを開始しましたが、このアプリケーションを起動する方法はわかりません。 – Travis

+0

私は、私のプロジェクトのデバッガのコマンドパスにそれを追加することで、その部分を見つけ出すと思います。私はそれを試してみましょう。 – Travis

+0

私はこれが私が思っていた以上に複雑かもしれないことに気付きました。デバッグするとき、私は私のDLLを呼び出すDLLがアプリケーションではなく、アプリケーションによって起動されたサービスによって起動されていることがわかりました。私はどうにかしてデバッガにこれを認識させる必要がありますか? – Travis

関連する問題