Visual Studio 2005のC ++ DLLとVBのデバッグ - 混合言語デバッグ
-
20-08-2019 - |
質問
私は、DLL内の関数を呼び出すVBプロジェクトを持っています。 DLLがCで書かれているプロジェクト(portaudio)、対別個に作成されます。
VBランタイムへのシステムがそれを見ることができます\ \ WINDOWSのDLL Cプロジェクトは、クリーンコンパイルし、私は現在、Cに落下しています必要なDLLを、構築します。
VBプロジェクトは、cに住ん:\ devprojects \ vbtest
Cプロジェクトは、cに住ん:\ devprojects \ portaudio Cでプロジェクトファイルを:\ devprojects \ portaudio \構築\ MSVC。このMSVCディレクトリの下のWin32 \デバッグで作成したDLLます。
私はDLL関数を呼び出すと、それはDLL内のC関数をステップ実行するには、VSデバッガが可能です - 私はなど、すべてのコードを持っていますが、VS2005は、混合言語デバッグのこの種をサポートしている場合、私は知りません。
これが可能である場合は、、私はこれを達成するために私のVisual Studioをセットアップする方法を助言することができます。
多くの感謝 デビッド
解決
同じ溶液中で両方のプロジェクトを持っている必要はありませんが、有効にデバッグシンボルで両方のプロジェクトをコンパイルする必要があります。
これであなたのVBのネットソリューションプロジェクト/プロパティ]で、[デバッグ]タブで、「アンマネージコードのデバッグを有効にする」がチェックされていることを確認します。
また、ロードされたDLLは、それがデバッグシンボルが格納されているPDBを見つけないかもしれない他に、コンパイルされたのと同じ場所にあることを確認してください。
他のヒント
、両方のプロジェクトとソリューションを作成し使用してCプロジェクトにVBプロジェクトに参照を追加「参照の追加..」ダイアログ - 。>プロジェクトおよびデバッグモードでそれらのすべてを構築する
どのようにVBからC DLLを呼び出すのですか?
、ちょうど、その下に両方のプロジェクトとソリューションを設定その依存関係を設定し、その上の確保から生成デバッグのlib / DLLにVBプロジェクトリンクのデバッグバージョンをビルドしますあなたのC ++プロジェクト。 Visual Studioは、残りを行います。
私はC#アプリケーションは、C ++ DLLを呼び出すと数回前にこれをやりました。私はこれを設定するつもりが、私はアセンブリリストになるだろうし、少なくとも私のコードで間違って何が起こっていたかのsomethigを仕事ができると仮定すると、デバッグしながらを通してステッピング試していませんでした...しかし、それは正しい.cppファイルをロードし、私はそのコードをステップ実行を継続させます。