VC6からマネージドDLLのデバッグ方法 – プログラミング – Home

VC6からマネージドDLLのデバッグ方...
 
通知
すべてクリア

[解決済] VC6からマネージドDLLのデバッグ方法


弟
 弟
(@弟)
ゲスト
結合: 15年前
投稿: 10
Topic starter  

VC6.0で開発したMFCアプリケーション(EXE)から
VS2008 C#で作成したマネージドDLLのデバッグ
(トレースやブレーク)ができません。

現状、マネージドDLLをRegAsmにより登録し関数の呼び出し自体は
問題なく行えます。

しかしデバッグはできません。

■試したこと
 ・マネージドDLLはDebugでコンパイルし、生成されたDLLとPDBは
  EXEと同じ階層におきました。

 ・VC6.0側もDebugでコンパイルしました。

 ・VC6.0側の[プロジェクト]-[設定]-[デバッグ]のカテゴリで
  「追加するDLL」に上記マネージドDLLを設定しチェックしました。

 ・この状態で実行すると「~.dllにはデバッグ情報がありません」と
  ダイアログがでます。

 ・このまま続行し、DLL関数の呼び出しの手前でブレークさせても
  関数の中へステップインできません。
  (ステップインしたいです。)

そもそもVC6からマネージドDLLをデバッグすることは不可能な
ことなのでしょうか?

以上よろしくお願いいたします。


引用未解決
トピックタグ
maru
 maru
(@maru)
ゲスト
結合: 17年前
投稿: 358
 

> VC6.0で開発したMFCアプリケーション(EXE)から
> VS2008 C#で作成したマネージドDLLのデバッグ
>(トレースやブレーク)ができません。

> そもそもVC6からマネージドDLLをデバッグすることは不可能な
> ことなのでしょうか?
VC6ではC#はサポートしていないので、無理でしょう。

VS2008 C#で作成したDLLはVS2008でないとデバッグ出来ないでしょう。
(C#には詳しくないけど。)
VS2008 C#の[プロジェクトプロパティ]-[デバッグ]-[開始動作]に「外部プログラムの開
始」というラジオボタンがあるから、そこで呼び出し元のプログラムを指定すればいい
んじゃないかな。
もっとも呼び出し側のプログラム(VC6で作成したもの)は正しくリンクしておく必要が
あります。

>  ・このまま続行し、DLL関数の呼び出しの手前でブレークさせても
>   関数の中へステップインできません。
>   (ステップインしたいです。)
VS2008側で呼び出される関数にブレークポイントを設定しておけばいいのでは?


返信引用
弟
 弟
(@弟)
ゲスト
結合: 15年前
投稿: 10
Topic starter  

maru様 ご回答ありがとうございます。

おっしゃる通り、DLL側のプロジェクト(VS2008 C#)からであれば
外部プログラムの設定とアンマネージドデバッグを有効にすることで、
DLLの中もEXEの中もデバッグできました。

ありがとうございました。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました