みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

Visaul Studioでのデバッグ(COMコンポーネントのデバッグ方法)

お世話になります。
今、VC++でATLのCOMプログラムをしていますが、
デバッグ方法がわかりません。コンパイルして、実行は、.htmファイルを開くため、C言語などのようにprintf()などで値を見たり、デバッガなどが起動してもブレイクポイントが?になります。

そこで少し調べたところ、MSDNに記載されていました。
http://msdn2.microsoft.com/ja-jp/library/ya4xb00s(VS.80).aspx

Visual StudioでのCOMコンポーネントのデバッグ設定方法についてです。
の手順3.eのCOMコンポーネントノードとはどれをさすのでしょうか?
COM+アプリケーションふぉるだを開くと
COM+ Explorer
COM+ QC Dead LetterQueue Listener
COM+ Utilities
などがあります。

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

投稿日時 - 2006-11-21 11:29:06

QNo.2552905

困ってます

このQ&Aは役に立ちましたか?

5人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

>DebugBreak()は、ブレイクポイントと同様だったような気がします。
強制的に例外を起こして実行中のプログラムを止める為、アドレスが確定しており、?にはならなくなります。

>ATLプロジェクトをビルドして実行すると、InternetExplorerが立ち>上げりますが結果とは関係のないデフォルトのHPにリンクしています。
これはアプリケーション固有の仕様でしょうか?
COMなので、他のアプリケーションから利用されると思いますが、ダミーのプロジェクトを作って、そこからタイプライブラリを使って読み込めば静的にリンクするのではないのでしたっけ?
 もし動的にリンクしていれば、COMコンポーネントプロジェクトのプロパティのデバッグ欄に、実行するメインのアプリケーションを記述していますか?

>printf()などの出力関数を挿入してその値などを見たい場合や、
ファイルにログを吐き出すのではダメなのですか?

>ある関数の返り値がエラーの場合のエラー処理などの関数など
>教えていただけたら、大変助かります。
 関数により、処理により、プロジェクトの方針により、エラー時の対応は変わってきますので、具体的でないと回答はしにくいと思います。

投稿日時 - 2006-11-24 10:44:19

お礼

ありがとうござます。
メッセージの出力方法わかりました。
また、コントロールの出力を.htmファイルで確認することでOKのようです。
ありがとうございました。

投稿日時 - 2006-11-24 15:04:08

ANo.1

COMはやったことないのですが、以前DLLをデバッグする際、デバッグしたい箇所にDebugBreak()という関数呼び出しを挿入し、実行時に故意に例外を起こさせて[再試行]ボタン押下後、Shift+F11 を数回押下して、DebugBreak()を書いた位置まで辿り着いてました。この時にはブレイクポイントもはれましたよ。
この方法は使えないでしょうか?

投稿日時 - 2006-11-21 17:30:17

補足

DebugBreak()は、ブレイクポイントと同様だったような気がします。
ATLプロジェクトをビルドして実行すると、InternetExplorerが立ち上げりますが結果とは関係のないデフォルトのHPにリンクしています。

printf()などの出力関数を挿入してその値などを見たい場合や、
ある関数の返り値がエラーの場合のエラー処理などの関数など
教えていただけたら、大変助かります。

よろしくお願い致します。

投稿日時 - 2006-11-21 18:34:45

あなたにオススメの質問