다음을 통해 공유


라이브러리의 기호 식별

기호 검색 도구는 기호의 계층적 보기를 표시합니다. 기호는 네임스페이스, 개체, 클래스, 클래스 멤버 및 기타 언어 요소를 나타냅니다.

계층 구조의 각 기호는 다음 인터페이스를 통해 기호 라이브러리에서 Visual Studio 개체 관리자에 전달된 탐색 정보로 식별할 수 있습니다.

계층 구조의 기호 위치는 기호를 구분합니다. 기호 검색 도구를 사용하여 특정 기호로 이동할 수 있습니다. 기호에 대한 고유하고 정규화된 경로에 따라 위치가 결정됩니다. 경로의 각 요소는 노드입니다. 경로는 최상위 노드로 시작하고 특정 기호로 끝납니다. 예를 들어 M1 메서드가 C1 클래스의 멤버이고 C1이 N1 네임스페이스에 있는 경우 M1 메서드의 전체 경로는 N1.C1.M1입니다. 이 경로에는 N1, C1 및 M1의 세 노드가 포함됩니다.

탐색 정보를 사용하면 Visual Studio 개체 관리자가 계층 구조에서 기호를 찾고, 선택하고, 계속 선택할 수 있습니다. 한 검색 도구에서 다른 검색 도구로 이동할 수 있습니다. 개체 브라우저를 사용하여 Visual C++ 프로젝트에서 기호를 찾아보는 동안 메서드를 마우스 오른쪽 단추로 클릭하고 호출 브라우저 도구를 시작하여 호출 그래프에 메서드를 표시할 수 있습니다.

두 가지 양식은 기호 위치를 설명합니다. 정규형은 기호의 정규화된 경로를 기반으로 합니다. 계층 구조에서 기호의 고유한 위치를 나타냅니다. 기호 검색 도구와는 독립적입니다. 정규형 정보를 가져오기 위해 Visual Studio 개체 관리자는 EnumCanonicalNodes 메서드를 호출합니다. 프레젠테이션 양식은 특정 기호 검색 도구 내에서 기호의 위치를 설명합니다. 기호의 위치는 계층 구조에서 다른 기호의 위치를 기준으로 합니다. 지정된 기호에는 여러 프레젠테이션 경로가 있을 수 있지만 정규 경로는 하나뿐입니다. 예를 들어 C1 클래스가 C2 클래스에서 상속되고 두 클래스가 모두 N1 네임스페이스에 있는 경우 개체 브라우저는 다음 계층 트리를 표시합니다.

N1
    C1
        Bases and Interfaces
            C2
    C2
        Bases and Interfaces
. . . . . . . . . . .

이 예제에서 C2 클래스의 정규 경로는 N1 + C2입니다. C2의 프레젠테이션 경로에는 C1 및 "기본 및 인터페이스" 노드: N1 + C1 + "기본 및 인터페이스" + C2가 포함됩니다.

프레젠테이션 양식 정보를 가져오기 위해 개체 관리자가 EnumPresentationNodes 메서드를 호출합니다.

정규 및 프레젠테이션 양식 정보를 가져오려면

  1. EnumCanonicalNodes 메서드를 구현합니다.

    개체 관리자는 이 메서드를 호출하여 기호의 정규 경로에 포함된 노드 목록을 가져옵니다.

    public int EnumCanonicalNodes(out Microsoft.VisualStudio.Shell.Interop.IVsEnumNavInfoNodes ppEnum)
    {
        CallBrowserEnumNavInfoNodes EnumNavInfoNodes =
            new CallBrowserEnumNavInfoNodes(m_strMethod);
        ppEnum = (IVsEnumNavInfoNodes)(EnumNavInfoNodes);
        return 0;
    }
    
    
  2. EnumPresentationNodes 메서드를 구현합니다.

    개체 관리자는 이 메서드를 호출하여 기호의 프레젠테이션 경로에 포함된 노드 목록을 가져옵니다.