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

締切り済みの質問

関数やクラスの相関関係を表示させるにはどうしたらよいでしょうか。

関数やクラスの相関関係を表示させるにはどうしたらよいでしょうか。

プログラミング初心者です。いつもお世話になっております。
C++を用いて関数の静的な呼び出しツリーやクラスの継承関係などを表示するために、
Browser Toolkits for Microsoft Visual C ++のbsckit70.exeをダウンロードし試行錯誤しております。
http://www.microsoft.com/downloads/details.aspx?FamilyId=621AE185-1C2A-4D6B-8146-183D66FE709D&displaylang=en
bscファイルにより関数呼び出しツリ-を作成するツールだそうです。
exeファイルを実行すると得られる[bscsdk>samples>bd-cxx>bd.cpp]を、visual studioで
[ファイル>新規作成>既存のコードからプロジェクトを作成]から選択しプロジェクトを立ち上げました。
そして同梱されているbsc.hファイルをプロジェクトに追加し、ビルドしたところ以下のエラーが出てきました。
--略--
1>cl : コマンド ライン warning D9035 : オプション 'Wp64' の使用は現在推奨されていません。今後のバージョンからは削除されます。
1>bd.cpp
1>c:\program files\microsoft sdks\windows\v6.0a\include\winnt.h(5545) : error C2146: 構文エラー : ';' が、識別子 'ContextRecord' の前に必要です。
1>c:\program files\microsoft sdks\windows\v6.0a\include\winnt.h(5545) : error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません
1>c:\program files\microsoft sdks\windows\v6.0a\include\winnt.h(5545) : error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません
1>c:\program files\microsoft sdks\windows\v6.0a\include\winnt.h(11263) : error C2065: 'PCONTEXT' : 定義されていない識別子です。
1>c:\program files\microsoft sdks\windows\v6.0a\include\winnt.h(11264) : error C2146: 構文エラー : ')' が、識別子 'ContextRecord' の前に必要です。
1>c:\program files\microsoft sdks\windows\v6.0a\include\winnt.h(11264) : warning C4229: 旧形式が使用されています : データの修飾子は無視されます。
-略-

winnt.hの該当部分が以下になります。
5543 typedef struct _EXCEPTION_POINTERS {
5544 PEXCEPTION_RECORD ExceptionRecord;
5545 PCONTEXT ContextRecord;
5546 } EXCEPTION_POINTERS, *PEXCEPTION_POINTERS;

11258 #if (NTDDI_VERSION > NTDDI_WIN2K)
11259 NTSYSAPI
11260 VOID
11261 NTAPI
11262 RtlCaptureContext (
11263 __out PCONTEXT ContextRecord
11264 );
11265 #endif

ちなみにwinnt.hはbd.cppでは呼び出されておらず、bsc.hからwindef.hがincludeされ、windef.hからwinnt.hがincludeされていました。
何をどうすればToolkitが動くようになるのか見当がついておりません。いくつかエラーが出ていますが関連性がよく分からず、まとめて質問する形になってしまいました。またBrowserToolkitsよりも良い方法がありましたらご教授いただければと思います。よろしくお願いします。

[開発環境]
WindowsXP(SP3)
VisualStudio2008 C++

投稿日時 - 2010-06-28 19:55:36

QNo.6001857

すぐに回答ほしいです

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

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

回答(1)

ANo.1

直接の回答ではないのですが、ドキュメント作成ツールなら以下が
よく使われており使い方も比較的簡単かと思います。

http://www.doxygen.jp/
Doxygen
ソースコード・ドキュメンテーション・ツール

投稿日時 - 2010-06-29 08:50:09

補足

進展があったので報告します。
インクルードしているbsc.hの冒頭に
#include "windows.h"
と書き加え、いくつかの操作を行った後ビルドが通りました。

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

【参考サイト】
http://www.abluestar.com/blog/winnt-h5545-error-c2146-syntax-error-missing-before-identifier-contextrecord/

投稿日時 - 2010-06-30 14:41:57

お礼

ありがとうございます。
参考にさせて頂きます。

もしC++でコードの構造を動的に得られるlibやAPIなど御存知でしたらご教授頂けますでしょうか。
よろしくお願いします。

投稿日時 - 2010-06-30 10:17:19

あなたにオススメの質問