アプリ版:「スタンプのみでお礼する」機能のリリースについて

こんにちは。
初歩的な質問をさせて頂きます。

VC++.NETを購入しまして、「今からはじめる・・」のテキスト通りにHellow,Worldの表示をコンパイル・実行させました。
その時に、下記のような警告メッセージが出てきます。
(メッセージ4行の内、2行を抜粋)


'test.exe': 'C:\WINNT\system32\NTDLL.DLL' を読み込みました。必要な DBG ファイルが見つからないか、開けません。
プログラム '[708] test.exe: ネイティブ' はコード 0 (0x0) で終了しました。


デバック用ファイルがないと言うことのように思いますが、この意味は何でしょうか。
また、表示させないようにする方法を教えてください。

A 回答 (1件)

自分でプログラムを作ってビルド (コンパイル)すると


  *.exe (または *.dll)
  *.pdb
というファイルができます。
※*.obj 等は省略してます。

*.exe/dll は実行ファイル、*.pdb がデバッグ情報ファイルです。
この *.pdb ファイルには、ソースファイル名とか関数名、引数の数、
変数名などのデバッグのための情報が入っています。
そのおかげで、デバッガ (Visual-C++デバッガ) で実行したときに、
ブレークポイントで止めたり、ステップ実行できたり、変数の値を
表示したりできるわけです。

デバッガはデバッグ対象の *.exe/dll を読み込むときに、
依存関係のあるほかの exe/dll も読み込み、
同時にそのデバッグ情報ファイル *.pdb/dbg を探します。
見つかった場合は読み込み、
無い場合は「見つかりませんでした」と表示します。

どんなプログラムも Windows 上で動いている限りは OS の API を
呼び出します。
その API は Windows に最初から入っている exe や dll (ntdll.dll など) の
中にあります (つまり自作 exe/dll と依存関係にあります)。
そして、Windows の exe や dll にはデバッグ情報ファイル
*.pdb (または *.dbg) ファイルは付いてきません。
ですから、「必要な DBG ファイルが見つからないか、開けません。」
というメッセージは必ず表示されてしまいます。

手元には Visual-C++6.0 しかないので .Net の場合も同じか
分かりませんが、*.exe/dll ファイルを右クリックして出てくるメニューから
「View Dependencies」を選ぶと、
その exe/dll が使用する(依存関係がある) dll がすべて表示されます。
※Dependency(depends.exe) は http://www.dependencywalker.com/
 からもダウンロードできます。


で、「見つかりません」メッセージ表示させない方法ですが、
"デバッグ情報ファイル *.pdb/dbg が無くても表示させない"方法は分かりません。

ですが、Windows 側 exe/dll のデバッグ情報をインストールすれば、メッセージは出なくなります。
その手順や意味は
http://www.microsoft.com/japan/whdc/DevTools/Deb …
に書いてありますが、自分でやって見たものの、うまくいかなかったため、
説明はやめときます (失礼)。
    • good
    • 0
この回答へのお礼

詳しい説明有難う御座います。
大変参考になりました。

お礼日時:2005/04/06 20:46

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!