Share via


クラス デザイナにおける Visual C++ コードの使用

更新 : 2007 年 11 月

クラス デザイナは、クラス ダイアグラムと呼ばれるビジュアル デザイン サーフェイスを表示します。クラス ダイアグラムは、プロジェクトのコード要素を視覚的に表現するものです。クラス ダイアグラムを使用して、プロジェクト内のクラスおよびその他の型を設計し、視覚化できます。

以前のバージョンの Visual Studio では、クラス デザイナはマネージ言語 (Visual C# と Visual Basic) のみをサポートしていました。Visual Studio 2008 では、クラス デザイナはネイティブ C++ コードを限定的にサポートするようになりました。これは、視覚化とドキュメント作成のみに使用されることを目的としています。

クラス デザイナは、次の C++ コード要素をサポートしています。

  • クラス (マネージ クラスの図形に似ていますが、複数の継承関係を持つことができるという点が異なります。)

  • 匿名クラス (クラス ビューが匿名型に対して生成した名前を表示します。)

  • テンプレート クラス

  • 構造体

  • 列挙体

  • マクロ (マクロの後処理ビューを表示します。)

  • typedef

型解決および表示の問題のトラブルシューティング

ソース ファイルの場所

クラス デザイナは、ソース ファイルの場所を追跡しません。したがって、プロジェクト構造を変更するか、プロジェクト内でソース ファイルを移動すると、クラス デザイナが型を見失うことがあります (特に typedef のソース型、基本クラス、または関連型の場合)。"クラス デザイナはこの型を表示できません " のようなエラーが表示されることがあります。このような場合は、変更または移動されたソース コードをもう一度クラス ダイアグラムにドラッグして再表示します。

更新およびパフォーマンスの問題

Visual C++ プロジェクトの場合、ソース ファイルでの変更がクラス ダイアグラムに表示されるまでに 30 ~ 60 秒かかることがあります。この遅延が原因で、クラス デザイナも "選択内で型が見つかりませんでした" というエラーをスローすることがあります。このようなエラーが表示された場合は、エラー メッセージで [キャンセル] クリックし、クラス ビューにコード要素が表示されるまで待ちます。その後、クラス デザイナが型を表示できるようになります。

コードに加えた変更でクラス ダイアグラムが更新されない場合は、ダイアグラムを閉じて、再度開く必要がある場合があります。

型解決の問題

クラス デザイナは、次のような理由により、型解決ができない場合があります。

  • 型が、クラス ダイアグラムを含むプロジェクトから参照されていないプロジェクトまたはアセンブリ内にあります。このエラーを修正するには、型を含むプロジェクトまたはアセンブリへの参照を追加します。詳細については、「方法 : Visual Studio で参照を追加または削除する (Visual Basic)」を参照してください。

  • 型が正しいスコープ内にないため、クラス デザイナが型を検出できません。コードに using ステートメント、imports ステートメント、または #include ステートメントが欠落していないことを確認します。また、型 (または関連する型) を最初に配置した名前空間の外に移動していないことも確認します。詳細については、「名前空間およびコンポーネントの参照」を参照してください。

  • 型が存在しません (または、コメント アウトされています)。このエラーを修正するには、型を誤ってにコメント アウトまたは削除していないことを確認します。

型解決の問題で最も頻繁に発生するエラーは、"クラス ダイアグラム '<element>' の 1 つ以上のシェイプに対して、コードが見つかりませんでした" です。詳細については、このエラーの説明を参照してください。

特定のエラー メッセージのトラブルシューティング

特定のエラー メッセージのトラブルシューティングの詳細については、「クラス デザイナのエラー メッセージ」のエラー トピックを参照してください。

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++ クラス

クラス デザイナの Visual C++ 構造体

クラス デザイナの Visual C++ 列挙体

クラス デザイナにおける Visual C++ の typedef

その他の技術情報

クラスと型のデザインおよび表示

クラスおよびその他の型の処理

クラス ダイアグラムの使用

クラスおよび型のデザイン

クラス デザイナのエラー メッセージ