1

dll で関数を呼び出す vb プロジェクトがあります。dll は、c で記述された別の vs プロジェクト (portaudio) で作成されます。

dll c プロジェクトはクリーンにコンパイルされ、必要な dll がビルドされます。これは、現在 c:\windows\system にドロップして vb ランタイムに表示されます。

VB プロジェクトは c:\devprojects\vbtest にあります

C プロジェクトは c:\devprojects\portaudio にあり、プロジェクト ファイルは c:\devprojects\portaudio\build\msvc にあります。この msvc ディレクトリの下の Win32\debug に DLL が作成されます。

dll 関数を呼び出すときに、vs デバッガーが dll の c 関数をステップ実行することは可能ですか?すべてのコードなどはありますが、VS2005 がこの種の混合言語デバッグをサポートしているかどうかはわかりません。

これが可能であれば、これを実現するために Visual Studio をセットアップする方法を教えてください。

どうもありがとうデビッド

4

3 に答える 3

4

同じソリューションに両方のプロジェクトを含める必要はありませんが、デバッグシンボルを有効にして両方のプロジェクトをコンパイルする必要があります。

VBネットソリューションのプロジェクト/プロパティで、[デバッグ]タブで[アンマネージコードのデバッグを有効にする]がオンになっていることを確認します。

また、ロードされたdllがコンパイルされた場所と同じ場所にあることを確認してください。そうでない場合、デバッグシンボルが保存されているpdbが見つからない可能性があります。

于 2009-01-26T15:19:36.940 に答える
0

VB.NET の場合、これは非常に簡単です。その下に両方のプロジェクトを含むソリューションをセットアップし、それらの依存関係をセットアップして、ビルド時に VB プロジェクトのデバッグ バージョンが C++ プロジェクトから生成されたデバッグ lib/dll にリンクされるようにします。 . 残りは Visual Studio が行います。

これは、C++ dll を呼び出す C# アプリケーションで数回行ったことがあります。私はこれを設定するつもりはありませんでしたが、アセンブリのリストを取得し、少なくともコードの問題を解決できると仮定して、デバッグ中にステップスルーしようとしました...ただし、正しい .cpp ファイルが読み込まれ、そのコードをステップ実行し続けることができました。

于 2009-01-26T14:56:56.363 に答える
0

両方のプロジェクトでソリューションを作成し、[参照の追加] ダイアログ -> [プロジェクト] を使用して VB プロジェクトの参照を C プロジェクトに追加し、それらをすべてデバッグ モードでビルドします。

どのように VB から C dll を呼び出しますか?

于 2009-01-26T11:55:27.493 に答える