在類別設計工具中使用 Visual C++ 程式碼

更新:2007 年 11 月

[類別設計工具] 會顯示稱為 [類別圖表] 的視覺設計介面,以視覺化的方式表現您專案中的程式碼項目。您可以使用類別圖表來設計和視覺化專案中的類別和其他型別。

在舊版的 Visual Studio 中,[類別設計工具] 僅支援 Managed 語言 (Visual C# 和 Visual Basic)。在 Visual Studio 2008 中,[類別設計工具] 增加原生 C++ 程式碼的有限支援,並僅限於在視覺化效果與文件中使用。

[類別設計工具] 支援下列 C++ 程式碼項目:

  • 類別 (類似於 Managed 類別圖案,不過具有多重繼承關係)

  • 匿名類別 (Anonymous Class,可顯示 [類別檢視] 為匿名型別產生的名稱)

  • 樣板類別 (Template Class)

  • Struct

  • Enum

  • 巨集 (顯示巨集的後處理檢視)

  • Typedef

疑難排解型別解析並顯示問題

原始程式檔的位置

[類別設計工具] 不會追蹤原始程式檔的位置。因此,如果您修改專案結構,或是移動專案中的原始程式檔,[類別設計工具] 便可能會遺失型別 (這點尤其適用於 typedef、基底類別 (Base Class) 或關聯型別的來源型別)。您可能會收到錯誤,例如類別設計工具無法顯示此型別。如果收到這類錯誤,請再次將修改過或重新配置過的原始程式碼拖曳到類別圖表中,以重新顯示原始程式碼。

更新和效能問題

對於 Visual C++ 專案,可能需要 30 到 60 秒的時間才能在類別圖表中顯示原始程式檔 (Source File) 中的變更。這項延遲也可能會使 [類別設計工具] 擲回在選取範圍中找不到任何型別的錯誤。如果收到這類錯誤,請按一下錯誤訊息中的 [取消],並等候程式碼項目在 [類別檢視] 中出現。在此之後,[類別設計工具] 便應該能夠顯示型別。

如果無法使用您在程式碼中進行的變更來更新類別圖表,可能需要關閉圖表後再次開啟。

型別解析問題

[類別設計工具] 可能由於下列原因而無法解析型別:

  • 型別所在的專案或組件不是由內含類別圖表的專案所參考。若要修正這項錯誤,請將參考加入至內含該型別的專案或組件。如需詳細資訊,請參閱 HOW TO:在 Visual Studio 中新增或移除參考 (Visual Basic)

  • 型別不在正確的範圍中,因此 [類別設計工具] 無法找到該型別。請確定程式碼沒有遺失 using、imports 或 #include 陳述式。並請確定您沒有將型別 (或是關聯的型別) 移出其原本位於的命名空間。如需詳細資訊,請參閱 參考命名空間和元件

  • 型別不存在 (或是已經標記為註解)。若要修正這項錯誤,請確定您沒有不小心將型別標記為註解或刪除型別。

您最有可能看到的型別解析問題錯誤是在類別圖表 '<element>' 中找不到一或多個圖案的程式碼。如需詳細資訊,請參閱該錯誤的描述。

疑難排解特定錯誤訊息

如需疑難排解特定錯誤訊息的詳細資訊,請參閱類別設計工具錯誤訊息中的錯誤主題。

C++ 程式碼項目的限制

  • 載入 Visual C++ 專案時,[類別設計工具] 會以唯讀的方式運作。您可以變更類別圖表,不過卻無法將類別圖表中的變更儲存回到原始程式碼中。

  • [類別設計工具] 僅支援原生 C++ 語意。對於編譯為 Managed 程式碼的 Visual C++ 專案,[類別設計工具] 只會視覺化屬於原生型別的程式碼項目。因此,您可以將類別圖表加入專案,不過 [類別設計工具] 不會允許您視覺化將 IsManaged 屬性設定為 true 的項目 (也就是實值型別 (Value Type) 和參考型別 (Reference Type))。

  • 對於 Visual C++ 專案,[類別設計工具] 只會讀取型別的定義。例如,假設您在標頭 (.h) 檔中定義某個型別,並在實作 (.cpp) 檔中定義其成員。如果您在實作 (.cpp) 檔中叫用 (Invoke)「類別圖表檢視」,[類別設計工具] 便不會顯示任何項目。又例如,如果您在以 #include 陳述式包含其他檔案的 .cpp 檔案上叫用「類別圖表檢視」,但其中卻不包含任何類別定義,[類別設計工具] 也不會顯示任何項目。

  • 定義 COM 介面和型別程式庫的 IDL (.idl) 檔案只有在圖表已編譯為原生 C++ 程式碼時,才能夠顯示圖表。

  • [類別設計工具] 並不支援全域函式和變數。

  • [類別設計工具] 不支援等位 (Unions)。這是一種特殊的類別,其中配置的記憶體僅為等位之最大資料成員的需要數量。

  • [類別設計工具] 不支援顯示 int 和 char 之類的基本資料型別。

  • 當目前專案不具備於專案外部定義的型別之正確參考時,[類別設計工具] 便無法顯示這些型別。

  • [類別設計工具] 可以顯示巢狀結構的型別,但無法顯示巢狀結構型別和其他型別之間的關係。

  • [類別設計工具] 無法顯示等於虛值 (Void) 或是從虛值型別衍生的型別。

請參閱

概念

類別設計工具中的 Visual C++ 類別

類別設計工具中的 Visual C++ 結構

類別設計工具中的 Visual C++ 列舉型別

類別設計工具中的 Visual C++ Typedef

其他資源

設計和檢視類別與型別

使用類別和其他型別

使用類別圖表

設計類別和型別

類別設計工具錯誤訊息