web-dev-qa-db-ja.com

C#でC ++ DLLをデバッグする

C++の.dllがあり、C#でデバッグしたいのですが、方法がわかりません。

C++プロジェクトをコンパイルすると、Visual Studioから「.exe」を実行するように求められました。

Dllを実行するためのプロジェクトを作成する必要があると思いました。

しかし、私は迷っています。どうすればデバッグできますか?

35
Custo

私があなたを正しく理解しているなら、あなたも作成したDLLを呼び出すC#プロジェクトで、作成したC++コードDLLをデバッグしたいですか?

これは、C#プロジェクトのプロパティに移動し、[デバッグ]セクションで[アンマネージコードのデバッグを有効にする]チェックボックスをオンにすることで行っています。これにより、C++ DLLにステップインできるようになります。

37
CCicotta

C#からC++をデバッグするには、いくつかのことを行う必要があります。

  1. デバッグアプリケーションのソリューションにC#プロジェクトを追加します。
  2. プロジェクトのプロパティの[デバッグ]タブで、C#プロジェクトのプロパティを[アンマネージコードのデバッグを許可]に編集します。
  3. C++プロジェクトをC#プロジェクトの依存関係として設定します。
  4. P/InvokeまたはCOMを使用してDLLを使用するようにC#プロジェクトにコードを記述します。
  5. C++コードにいくつかのブレークポイントを設定し、C#プロジェクトを実行します。
19
heavyd

Visual Studioは、それ自体ではdllを実行できません。

C++ dllを使用するスタートアップ.exeをdllプロジェクトのプロパティで設定する必要があります。 プロパティ->デバッグ->コマンドから実行できます。dllを呼び出す実行可能ファイルのパスと、必要なコマンドライン引数を指定します。

5
JohnIdol

VS 2017 Proの場合、メインプロジェクト(ソリューション内のc#プロジェクト)の右クリックでプロパティページに移動します。 (デバッグ)メニュー項目で、デバッガーエンジンのオプションを見つけ、(ネイティブコードのデバッグを有効にする)を選択します。

1
user10044681

SOS(Son of Strike)デバッグ拡張機能(SOS.dll)は、内部CLR環境に関する情報を提供することにより、Visual Studioでマネージコードをデバッグするのに役立ちます

以下の記事を参照してください:-

MSDN記事

0