Visual C++ 코드 사용(클래스 디자이너)Working with Visual C++ Code (Class Designer)

클래스 디자이너에는 프로젝트의 코드 요소를 시각적으로 나타내 주는 클래스 다이어그램이라는 시각적 디자인 화면이 표시됩니다.Class Designer displays a visual design surface called a class diagram that provides a visual representation of the code elements in your project. 클래스 다이어그램을 사용하여 프로젝트의 클래스 및 기타 형식을 디자인하고 시각화할 수 있습니다.You can use class diagrams to design and visualize classes and other types in a project.

클래스 디자이너에서 지원되는 C++ 코드 요소는 다음과 같습니다.Class Designer supports the following C++ code elements:

  • 클래스(상속 관계가 여러 개 있을 수 있다는 점을 제외하고는 관리되는 클래스의 모양과 비슷함)Class (resembles a managed class shape, except that it can have multiple inheritance relationships)

  • 익명 클래스(익명 형식에 대해 클래스 뷰에서 생성된 이름이 표시됨)Anonymous class (displays Class View's generated name for the anonymous type)

  • 템플릿 클래스Template class

  • 구조체Struct

  • EnumEnum

  • 매크로(후처리된 매크로 뷰가 표시됨)Macro (displays the post-processed view of the macro)

  • TypedefTypedef

참고

이 UML 클래스 다이어그램에서 모델링 프로젝트를 만들 수 있습니다 수 없습니다.This is not the same as the UML class diagram, which you can create in a Modeling Project. 자세한 내용은 UML 클래스 다이어그램: 참조를 참조하세요.For more information, see UML Class Diagrams: Reference.

형식 확인 및 표시 문제 해결Troubleshooting Type Resolution and Display Issues

소스 파일의 위치Location of Source Files

클래스 디자이너에서는 소스 파일의 위치를 추적하지 않습니다.Class Designer does not keep track of the location of source files. 따라서 프로젝트 구조를 수정하거나 프로젝트의 소스 파일을 이동하면 특히 형식 정의, 기본 클래스 또는 형식 연결의 소스 형식에 대해 클래스 디자이너에서 해당 형식을 추적할 수 없게 됩니다.Therefore, if you modify your project structure or move source files in your project, Class Designer can lose track of the type (especially the source type of a typedef, base classes, or association types). 클래스 디자이너에서 이 형식을 표시할 수 없습니다.와 같은 오류가 발생할 수 있습니다.You might receive an error such as Class Designer is unable to display this type. 이러한 오류가 발생하면 수정되거나 위치가 변경된 소스 코드를 클래스 다이어그램으로 끌어서 다시 표시합니다.If you do, drag the modified or relocated source code to the class diagram again to redisplay it.

업데이트 및 성능 문제Update and Performance Issues

Visual C++ 프로젝트의 경우 소스 파일의 변경 내용이 클래스 다이어그램에 나타나는 데는 30~60초가 소요될 수 있습니다.For Visual C++ projects, it might take 30 to 60 seconds for a change in the source file to appear in the class diagram. 이 시간 지연으로 인해 클래스 디자이너에서 선택한 항목에서 형식을 찾을 수 없습니다. 오류를 throw할 수도 있습니다.This delay might also cause Class Designer to throw the error No types were found in the selection. 이와 같은 오류가 발생하면 오류 메시지에서 취소를 클릭하고 클래스 뷰에 해당 코드 요소가 나타날 때까지 기다립니다.If you receive an error such as this, click Cancel in the error message and wait for the code element to appear in Class View. 그런 후에 클래스 디자이너에서 해당 형식이 표시될 수 있습니다.After you do this, Class Designer should be able to display the type.

코드에서 변경한 내용으로 클래스 다이어그램이 업데이트되지 않으면 다이어그램을 닫았다가 다시 열어 보세요.If a class diagram does not update with changes you have made in the code, you might need to close the diagram and open it again.

형식 확인 문제Type Resolution Issues

클래스 디자이너에서는 다음과 같은 경우에 형식을 확인할 수 없습니다.Class Designer might not be able to resolve types for the following reasons:

  • 클래스 다이어그램이 속한 프로젝트에서 참조되지 않는 프로젝트나 어셈블리에 형식이 있습니다.The type is in a project or assembly that is not referenced from the project that contains the class diagram. 이 오류를 수정하려면 해당 형식을 포함하는 프로젝트나 어셈블리에 대한 참조를 추가합니다.To correct this error, add a reference to the project or assembly that contains the type. 자세한 내용은 프로젝트의 참조 관리를 참조하세요.For more information, see Managing references in a project.

  • 형식이 올바른 범위에 있지 않아 클래스 디자이너에서 해당 형식을 찾을 수 없습니다.The type is not in the correct scope, so Class Designer cannot locate it. 이 경우 코드에 using, imports 또는 #include 문이 누락되지 않았는지 확인합니다.Ensure that the code is not missing a using, imports, or #include statement. 또한 해당 형식이나 관련 형식을 원래 있던 네임스페이스 밖으로 이동하지 않았는지 확인합니다.Also make sure that you have not moved the type (or a related type) out of the namespace in which it was originally located.

  • 형식이 존재하지 않거나 주석 처리되었습니다.The type does not exist (or has been commented out). 이 오류를 해결하려면 해당 형식을 주석으로 처리하거나 삭제하지 않았는지 확인합니다.To correct this error, make sure that you have not commented out or deleted the type.

  • 형식은 #import 지시문을 사용하여 참조되는 라이브러리에 있습니다.The type is located in a library referenced by an #import directive. 가능한 해결 방법은 생성된 코드(.tlh 파일)를 헤더 파일에 대한 #include 지시문에 수동으로 추가하는 것입니다.A possible workaround is to manually add the generated code (the .tlh file) to an #include directive into the header file.

    형식 확인 문제의 경우 가장 발생하기 쉬운 오류는 클래스 다이어그램 ‘<element>’에서 하나 이상의 모양에 대한 코드를 찾을 수 없습니다.입니다.The error you are most likely to see for a type resolution issue is Code could not be found for one or more shapes in class diagram '<element>'. 이 오류 메시지가 반드시 코드에 오류가 있음을 나타내지 않습니다.This error message does not necessarily indicate that your code is in error. 클래스 디자이너는 코드를 표시할 수 없습니다 것을 나타냅니다.It indicates only that class designer was unable to display your code. 다음과 같은 방법을 시도해 보세요.Try the following measures.

  • 해당 형식이 존재하는지 확인합니다.Ensure that the type exists. 실수로 주석으로 처리했거나 소스 코드를 삭제했는지 확인합니다.Ensure that you have not unintentionally commented out or deleted the source code.

  • 입력한 형식이 클래스 디자이너에서 지원되는지 확인합니다.Ensure that Class Designer supports the type that you entered. C++ 코드 요소에 대한 제한 사항을 참조하세요.See Limitations for C++ Code Elements.

  • 형식을 확인해 보세요.Try to resolve the type. 프로젝트 또는 클래스 다이어그램이 속한 프로젝트에서 참조되지 않는 어셈블리 형식이 있을 수 있습니다.The type might be in a project or assembly that is not referenced from the project that contains the class diagram. 이 오류를 수정하려면 해당 형식을 포함하는 프로젝트나 어셈블리에 대한 참조를 추가합니다.To correct this error, add a reference to the project or assembly that contains the type. 자세한 내용은 프로젝트의 참조 관리를 참조하세요.For more information, see Managing references in a project.

  • 형식을 확인해 보세요.Try to resolve the type. 프로젝트 또는 클래스 다이어그램이 속한 프로젝트에서 참조되지 않는 어셈블리 형식이 있을 수 있습니다.The type might be in a project or assembly that is not referenced from the project that contains the class diagram. 이 오류를 수정하려면 해당 형식을 포함하는 프로젝트나 어셈블리에 대한 참조를 추가합니다.To correct this error, add a reference to the project or assembly that contains the type. 자세한 내용은 프로젝트의 참조 관리를 참조하세요.For more information, see Managing references in a project.

  • 클래스 디자이너에서 찾을 수 있도록 형식이 올바른 범위에 있는지 확인하세요.Ensure that the type is in the correct scope so that Class Designer can locate it. 이 경우 코드에 using, imports 또는 #include 문이 누락되지 않았는지 확인합니다.Make sure that the code is not missing a using, imports, or #include statement. 또한 해당 형식이나 관련 형식을 원래 있던 네임스페이스 밖으로 이동하지 않았는지 확인합니다.Also make sure that you have not moved the type (or a related type) out of the namespace in which it was originally located.

기타 오류 메시지 문제 해결Troubleshooting Other Error Messages

MSDN(Microsoft Developer Network) 공개 포럼에서 오류 및 경고 문제 해결 관련 지원 정보를 찾을 수 있습니다.You can find assistance with troubleshooting errors and warnings in the Microsoft Developer Network (MSDN) public forums. Visual Studio Class Designer Forum(Visual Studio 클래스 디자이너 포럼)을 참조하세요.See the Visual Studio Class Designer Forum.

C++ 코드 요소에 대한 제한 사항Limitations for C++ Code Elements

  • Visual C++ 프로젝트가 로드되면 클래스 디자이너는 읽기 전용 방식으로 작동합니다.When a Visual C++ project is loaded, Class Designer functions in a read-only manner. 즉, 클래스 다이어그램을 변경할 수 있지만 클래스 다이어그램에서 변경한 내용을 소스 코드에 저장할 수는 없습니다.You can change the class diagram, but you cannot save changes from the class diagram back to the source code.

  • 클래스 디자이너에서는 네이티브 C++ 의미 체계만 지원됩니다.Class Designer supports only native C++ semantics. 관리 코드로 컴파일된 Visual C++ 프로젝트의 경우 클래스 디자이너에는 네이티브 형식인 코드 요소만 시각화됩니다.For Visual C++ projects that are compiled into managed code, Class Designer will only visualize code elements that are native types. 따라서 프로젝트에 클래스 다이어그램을 추가할 수는 있지만 IsManaged 속성이 true로 설정된 요소, 즉 값 형식과 참조 형식은 클래스 디자이너에 시각화되지 않습니다.Therefore, you can add a class diagram to a project, but Class Designer will not allow you to visualize elements in which the IsManaged property is set to true (that is, value types and reference types).

  • Visual C++ 프로젝트의 경우 클래스 디자이너에서는 형식의 정의만 읽습니다.For Visual C++ projects, the Class Designer reads only the definition of the type. 예를 들어 헤더 파일(.h)에 형식을 정의하고 해당 멤버는 구현 파일(.cpp)에 정의할 경우,For example, assume that you define a type in a header (.h) file and define its members in an implementation (.cpp) file. 구현 파일(.cpp)에서 "클래스 다이어그램 보기"를 호출하면 클래스 디자이너에 아무 것도 표시되지 않습니다.If you invoke "View Class Diagram" on the implementation (.cpp) file, Class Designer displays nothing. 또 다른 예로, #include 문을 사용하여 다른 파일을 포함하지만 실제 클래스 정의는 포함하지 않는 .cpp 파일에서 "클래스 다이어그램 보기"를 호출할 경우에도 클래스 디자이너에 아무 것도 표시되지 않습니다.As another example, if you invoke "View Class Diagram" on a .cpp file that uses an #include statement to include other files but does not contain any actual class definitions, Class Designer again displays nothing.

  • COM 인터페이스와 형식 라이브러리를 정의하는 IDL 파일(.idl)은 네이티브 C++ 코드로 컴파일되기 전까지는 다이어그램에 표시되지 않습니다.IDL (.idl) files, which define COM interfaces and type libraries, do not display in diagrams unless they are compiled to native C++ code.

  • 클래스 디자이너에서는 전역 함수 및 변수가 지원되지 않습니다.Class Designer does not support global functions and variables.

  • 클래스 디자이너에서는 공용 구조체가 지원되지 않습니다.Class Designer does not support unions. 공용 구조체는 해당 데이터 멤버 중 가장 큰 데이터 멤버에 필요한 만큼만 메모리가 할당되는 특수한 클래스 형식입니다.This is a special type of class in which the memory allocated is only the amount necessary for the union's largest data member.

  • 클래스 디자이너에서는 int, char 등의 기본 데이터 형식이 표시되지 않습니다.Class Designer does not display basic data types such as int and char.

  • 클래스 디자이너에서는 현재 프로젝트에 프로젝트 외부에 정의된 형식에 대한 올바른 참조가 없을 경우 해당 형식이 표시되지 않습니다.Class Designer does not display types that are defined outside the current project if the project does not have correct references to those types.

  • 클래스 디자이너에서 중첩된 형식을 표시할 수는 있지만 중첩된 형식과 기타 형식 사이의 관계는 표시할 수 없습니다.Class Designer can display nested types but not the relationships between a nested type and other types.

  • 클래스 디자이너에서는 void 형식이거나 void 형식에서 파생된 형식을 표시할 수 없습니다.Class Designer cannot display types that are void or that derive from a void type.

참고 항목See Also

클래스와 형식 디자인 및 보기 Designing and Viewing Classes and Types
클래스 및 기타 형식 작업(클래스 디자이너) Working with Classes and Other Types (Class Designer)
클래스 다이어그램 사용(클래스 디자이너) Working with Class Diagrams (Class Designer)
클래스 및 형식 디자인(클래스 디자이너) Designing Classes and Types (Class Designer)
클래스 디자이너 오류에 대한 추가 정보 Additional Information About Class Designer Errors
클래스 디자이너의 Visual C++ 클래스 Visual C++ Classes in Class Designer
클래스 디자이너의 Visual C++ 구조체 Visual C++ Structures in Class Designer
클래스 디자이너의 Visual C++ 열거형 Visual C++ Enumerations in Class Designer
클래스 디자이너의 Visual C++ 형식 정의Visual C++ Typedefs in Class Designer