관리되는 Visual C++ 프로젝트에 참조 추가

이 문서에서는 관리되는 Visual C++ 프로젝트에 참조를 추가하는 방법에 대한 정보를 제공합니다.

원래 제품 버전: Visual C++
원래 KB 번호: 310674

요약

이 문서에서는 Visual C++ 프로젝트의 다른 어셈블리에 대한 참조를 추가하는 프로세스를 설명합니다. Visual C#과 같은 다른 언어에서는 참조 추가 대화 상자를 통해 참조를 추가할 수 있습니다. 이 대화 상자는 관리되는 C++ 애플리케이션에서 사용할 수 없습니다. 관리되는 C++ 애플리케이션에서 참조를 더 쉽게 사용할 수 있도록 하는 몇 가지 팁이 있습니다.

Microsoft .NET 참조

.NET 참조는 공유 어셈블리를 가리킵니다. 예를 들어 어셈블리 System.Windows.Forms.dllWindows Forms 클래스에 액세스하기 위한 표준 어셈블리입니다. 관리되는 C++ 애플리케이션에서 이 어셈블리를 사용하려면 다음과 같이 전처리기 지시문으로 #using 참조하기만 하면 됩니다.

#using <System.Windows.Forms.dll>

COM 참조

관리되는 C++ 애플리케이션에서 COM(구성 요소 개체 모델) 개체를 사용하려면 디자인 결정이 필요합니다. 한 가지 옵션은 관리되는 클래스 내에서 관리되지 않는 COM 코드를 사용하는 것입니다. 예를 들어 기존 #import 솔루션을 사용하도록 결정할 수 있습니다. COM Interop을 사용하는 데 문제가 있는 경우 이 옵션을 사용하는 것이 좋습니다.

두 번째 옵션은 COM 개체를 래핑하는 interop 어셈블리를 사용하는 것입니다. C#, Visual Basic .NET과 같은 다른 언어에서 사용할 수 있는 유일한 방법입니다. COM 개체에 대한 interop 어셈블리를 만들려면 TLBIMP.exe 도구를 사용합니다. 예를 들어 다음 단계를 사용하여 관리되는 애플리케이션에서 인터넷 Explorer 자동화합니다.

  1. 명령 프롬프트를 엽니다.

  2. Windows 시스템 폴더로 이동합니다.

  3. 다음 명령을 입력합니다.

    tlbimp shdocvw.dll /out:Interop.shdocvw.dll
    
  4. Interop.shdocvw.dll 프로젝트 폴더로 이동합니다.

그러면 Shdocvw.dllCOM 개체에 대한 interop 어셈블리가 만들어집니다. 결과 파일인 Interop.shdocvw.dll지시문과 함께 #using 사용할 수 있습니다. 그런 다음 관리되는 구성 요소로 처리할 수 있습니다. 이 DLL(동적 링크 라이브러리)을 출력 폴더에 자동으로 복사하는 방법에 대한 지침은 이 문서의 빌드 후 이벤트 사용 섹션을 참조하세요.

참고

TLBIMP.exe 인식하려면 Visual C++에 대한 환경 변수를 설정해야 합니다. 설정되지 않은 경우 먼저 Visual Studio .NET 또는 ./VC/BIN/VCVARS32.bat Visual Studio 및 Visual C++ Express Edition에서 실행 ./VC7/BIN/VCVARS32.bat 해야 합니다.

프로젝트 참조

프로젝트 참조는 다른 프로젝트에서 만든 어셈블리에 대한 참조입니다. 다시 말하지만 지시문 #using 은 이러한 어셈블리를 참조하는 데 사용됩니다. 그러나 이러한 어셈블리는 공유되지 않으므로 컴파일러에서 해당 어셈블리를 찾을 수 있도록 조치를 취해야 합니다. 이 작업을 수행하는 방법에는 두 가지가 있습니다.

  • 어셈블리를 프로젝트 폴더에 복사합니다.
  • 어셈블리를 찾으려면 프로젝트 설정을 변경합니다.
  1. 프로젝트의 속성 페이지 대화 상자를 엽니다.

  2. C/C++ 폴더를 클릭합니다.

    참고

    Visual C++에서 구성 속성을 확장한 다음 C/C++를 확장합니다.

  3. 일반 속성 페이지를 클릭합니다.

  4. 대상 어셈블리가 포함된 폴더를 가리키도록 Resolve #using References 속성을 수정합니다.

빌드 후 이벤트 사용

프라이빗 어셈블리는 사용 중인 실행 파일과 동일한 폴더에 있어야 합니다. Visual C#, Visual Basic .NET 또는 Visual Basic에서 참조를 추가하면 출력 폴더에 자동으로 복사됩니다. 관리되는 C++ 애플리케이션에서는 이벤트를 사용하여 post-build 이 단계를 자동화할 수 있습니다. 예를 들어 TestApp이라는 관리되는 C++ 애플리케이션의 프로젝트 폴더에 MYLIB.dll 라는 어셈블리가 있는 시나리오를 생각해 보세요. 다음 단계에서는 TestApp 프로젝트의 출력 폴더에 이 DLL을 복사하는 이벤트를 설정합니다post-build.

  1. 관리되는 C++ 프로젝트의 속성 페이지 대화 상자를 엽니다.

  2. 이벤트 빌드 폴더를 클릭합니다.

    참고

    Visual C++에서 구성 속성을 확장한 다음, 빌드 이벤트를 확장합니다.

  3. 빌드 후 이벤트 속성 페이지를 클릭합니다.

  4. 명령줄 속성을 다음 명령으로 수정합니다.

    copy $(<ProjectDir>)mylib.dll $(<TargetDir>)  
    

Visual C++ .NET 또는 Visual C++ 사용

Visual C++ .NET 또는 Visual C++를 사용하면 참조 추가 대화 상자를 통해 참조를 추가할 수 있습니다. 프로젝트 참조를 추가하려면 다음 단계를 수행합니다.

  1. 솔루션 탐색기 프로젝트를 선택합니다.

  2. 프로젝트 메뉴에서 참조 추가를 클릭합니다.

    참고

    Visual C++의 프로젝트 메뉴에서 참조를 클릭한 다음 새 참조 추가를 클릭합니다.

  3. 참조 추가 대화 상자에서 참조를 추가할 범주에 해당하는 탭을 클릭합니다.

    참고

    Visual C++의 참조 추가 대화 상자에서 찾아보기 탭을 클릭합니다.

  4. 찾아보기를 클릭하고 로컬 드라이브에서 원하는 구성 요소를 찾은 다음 확인을 클릭합니다. 구성 요소가 선택한 구성 요소 필드에 추가됩니다.

    참고

    Visual C++에서 로컬 드라이브에서 원하는 구성 요소를 찾습니다.

  5. 선택한 참조를 현재 탭에 추가하려면 추가를 클릭합니다.

    참고

    Visual C++에서 확인을 클릭하여 대화 상자를 닫고 프로젝트의 속성 페이지 대화 상자의 참조 목록 상자에 구성 요소를 추가합니다.