Visual C++ コードの使用 (クラス デザイナー)
クラス デザイナーは、クラス ダイアグラムと呼ばれるビジュアル デザイン サーフェイスを表示します。クラス ダイアグラムは、プロジェクトのコード要素を視覚的に表現するものです。 クラス ダイアグラムを使用して、プロジェクト内のクラスおよびその他の型を設計し、視覚化できます。
クラス デザイナーは、次の C++ コード要素をサポートしています。
クラス (マネージ クラスの図形に似ていますが、複数の継承関係を持つことができるという点が異なります。)
匿名クラス (クラス ビューが匿名型に対して生成した名前を表示します。)
テンプレート クラス
構造体
Enum
マクロ (マクロの後処理ビューを表示します。)
typedef
注意
これは、モデリング プロジェクトで作成できるUMLクラス図と同じではありません。詳細については、「UML クラス図: リファレンス」を参照してください。
型解決および表示の問題のトラブルシューティング
ソース ファイルの場所
クラス デザイナーは、ソース ファイルの場所を追跡しません。 したがって、プロジェクト構造を変更するか、プロジェクト内でソース ファイルを移動すると、クラス デザイナーが型を見失うことがあります (特に typedef のソース型、基本クラス、または関連型の場合)。 "Class Designer is unable to display this type " のようなエラーが表示されることがあります。 このような場合は、変更または移動されたソース コードをもう一度クラス ダイアグラムにドラッグして再表示します。
更新およびパフォーマンスの問題
Visual C++ プロジェクトの場合、ソース ファイルでの変更がクラス ダイアグラムに表示されるまでに 30 ~ 60 秒かかることがあります。 この遅延が原因で、クラス デザイナーも "No types were found in the selection" というエラーをスローすることがあります。 このようなエラーが表示された場合は、エラー メッセージで [キャンセル] クリックし、クラス ビューにコード要素が表示されるまで待ちます。 その後、クラス デザイナーが型を表示できるようになります。
コードに加えた変更でクラス ダイアグラムが更新されない場合は、ダイアグラムを閉じて、再度開く必要がある場合があります。
型解決の問題
クラス デザイナーは、次のような理由により、型解決ができない場合があります。
型が、クラス ダイアグラムを含むプロジェクトから参照されていないプロジェクトまたはアセンブリ内にあります。 このエラーを修正するには、型を含むプロジェクトまたはアセンブリへの参照を追加します。 詳細については、「方法: [参照の追加] ダイアログ ボックスを使用して参照を追加または削除する」を参照してください。
型が正しいスコープ内にないため、クラス デザイナーが型を検出できません。 コードに using ステートメント、imports ステートメント、または #include ステートメントが欠落していないことを確認します。 また、型 (または関連する型) を最初に配置した名前空間の外に移動していないことも確認します。
型が存在しません (または、コメント アウトされています)。 このエラーを修正するには、型をコメント アウトまたは削除していないことを確認します。
この型は、#import ディレクティブで参照されるライブラリに含まれます。 生成したコード (.tlh ファイル) をヘッダー ファイルの #include ディレクティブに追加する、という代替手段があります。
型解決の問題で最も頻繁に発生するエラーは、"Code could not be found for one or more shapes in class diagram '<element>'" です。 このエラー メッセージは、必ずしも、コードのエラーが発生することを示します。 クラス デザイナーで、コードを表示できないことだけを示しています。 次の方法を試してください。
型がであることを確認します。 誤ってコメント アウトまたはがソース・コードを削除していないことを確認します。
クラス デザイナーは、入力した型をサポートすることを確認します。 C++コード要素の制限を参照してください。
型を解決してください。 型は、クラス ダイアグラムを含むプロジェクトから参照されていないプロジェクトまたはアセンブリ内にある場合もあります。 このエラーを修正するには、型を含むプロジェクトまたはアセンブリへの参照を追加します。 詳細については、「方法: [参照の追加] ダイアログ ボックスを使用して参照を追加または削除する」を参照してください。
クラス デザイナーが型を検出できるように、型が正しいスコープ内にあることを確認します。 コードが using、imports、または #include のステートメントが失われていないことを確認します。 また、型 (または関連する型) を最初に配置した名前空間の外に移動していないことも確認します。
そのほかのエラー メッセージのトラブルシューティング
MSDN (Microsoft Developer Network) のパブリック フォーラムでは、エラーや警告のトラブルシューティングに役立つ情報を参照できます。 Visual Studioのクラス デザイナーのフォーラムを参照してください。
C++ コード要素の制限事項
Visual C++ のプロジェクトがロードされるとき、クラス デザイナーは読み取り専用で機能します。 クラス ダイアグラムは変更できますが、クラス ダイアグラムから変更内容をソース コードに保存できません。
クラス デザイナーはネイティブ C++ セマンティクスのみをサポートします。 マネージ コードにコンパイルされた Visual C++ プロジェクトでは、クラス デザイナーはネイティブ型のコード要素のみを視覚化します。 したがって、プロジェクトにクラス ダイアグラムを追加することはできますが、クラス デザイナーでは、IsManaged プロパティが true に設定されている要素 (つまり、値型および参照型) を視覚化することはできません。
Visual C++ プロジェクトでは、クラス デザイナーは型の定義のみを読み取ります。 たとえば、ヘッダー (.h) ファイルで型を定義して、実装 (.cpp) ファイルでメンバーを定義するとします。 実装ファイル (.cpp) で [クラス ダイアグラムで表示] を起動しても、クラス デザイナーには何も表示されません。 もう 1 つの例として、#include ステートメントを使用して他のファイルをインクルードし、実際のクラス定義は含まない .cpp ファイルで、[クラス ダイアグラムで表示] を起動する場合があります。この状態では、クラス デザイナーには何も表示されません。
IDL (.idl) ファイルでは COM インターフェイスとタイプ ライブラリが定義されますが、このファイルはネイティブ C++ コードにコンパイルされない限り、ダイアグラムには表示されません。
クラス デザイナーはグローバル関数とグローバル変数をサポートしていません。
クラス デザイナーは共用体をサポートしていません。 これは、共用体の最大データ メンバーに必要な量のメモリしか割り当てられないという、特殊なタイプのクラスです。
クラス デザイナーでは、int および char などの基本データ型は表示されません。
現在のプロジェクトの外部で定義された型への正しい参照がプロジェクトにない場合、これらの型はクラス デザイナーで表示されません。
クラス デザイナーは、入れ子にされた型を表示することはできますが、入れ子にされた型とその他の型の間の関係は表示できません。
クラス デザイナーでは、void 型または void 型から派生した型を表示できません。
参照
処理手順
概念
クラス デザイナーにおける Visual C++ の typedef