다음을 통해 공유


연습: Hello World: 스마트 장치에 대한 COM Interop 예제

업데이트: 2007년 11월

이 연습에서는 간단한 COM 개체와 관리되는 응용 프로그램을 하나의 솔루션에 결합합니다.

참고:

다음 지침처럼 컴퓨터에서 Visual Studio 사용자 인터페이스 요소 일부에 대한 이름이나 위치를 다르게 표시할 수 있습니다. 이러한 요소는 사용하는 Visual Studio 버전 및 설정에 따라 결정됩니다. 자세한 내용은 Visual Studio 설정을 참조하십시오.

이 연습은 Visual C++ 개발 설정을 사용하여 작성했습니다.

COM 개체 만들기

스마트 장치 ATL 프로젝트를 만들려면

  1. 파일 메뉴에서 새로 만들기를 가리키고 프로젝트를 클릭한 다음 프로젝트 형식 창에서 Visual C++를 확장하고 스마트 장치를 클릭합니다.

  2. 템플릿 창에서 ATL 스마트 장치 프로젝트를 클릭합니다.

  3. 이름 상자에 HelloCOMObject를 입력합니다.

  4. 솔루션 이름 상자에 InteropSolution을 입력합니다.

  5. 확인을 클릭하여 ATL 스마트 장치 프로젝트 마법사를 시작합니다.

  6. 마침을 클릭하여 마법사를 닫습니다.

    이 연습을 실행하기 위해 마법사에서 기본 설정을 변경할 필요는 없습니다.

새 클래스를 추가하려면

  1. 솔루션 탐색기에서 HelloCOMObject 프로젝트를 마우스 오른쪽 단추로 클릭하고 추가를 가리킨 다음 클래스를 클릭하여 클래스 추가 대화 상자를 엽니다.

  2. 범주 창에서 스마트 장치를 클릭합니다.

  3. 템플릿 창에서 ATL 단순 개체를 클릭한 다음 추가를 클릭하여 ATL 단순 개체 마법사를 엽니다.

  4. 약식 이름 상자에 Hello를 입력합니다.

  5. 왼쪽 창에서 옵션을 클릭하여 옵션 페이지를 엽니다.

  6. 스레딩 모델 그룹에서 자유형을 선택한 다음 마침을 클릭합니다.

클래스에 메서드를 추가하려면

  1. 바탕 화면에 있는 탭이나 보기 메뉴에서 클래스 뷰 창을 엽니다.

  2. HelloCOMObject를 확장하여 IHello 인터페이스를 표시합니다.

  3. IHello를 마우스 오른쪽 단추로 클릭하고 추가를 가리킨 다음 메서드 추가를 클릭하여 메서드 추가 마법사를 엽니다.

  4. 메서드 이름 상자에 HelloWorld를 입력합니다.

  5. 매개 변수 형식 상자에서 BSTR*를 선택합니다.

  6. 매개 변수 이름 상자에 text를 입력합니다.

  7. 매개 변수 특성 그룹에서 out을 선택합니다.

  8. 추가를 클릭합니다.

    메서드 상자에 [out] BSTR* text가 표시됩니다.

  9. 마침을 클릭하여 메서드 추가 마법사를 닫습니다.

    Hello.h 파일에 STDMETHOD(HelloWorld)(BSTR* text) 메서드가 표시됩니다.

메서드에 구현을 추가하려면

  1. 솔루션 탐색기에서 Hello.cpp를 두 번 클릭하여 코드 편집기에서 해당 파일을 엽니다.

  2. STDMETHODIMP 섹션에서 return 문 앞에 다음과 같은 구현 코드를 삽입합니다.

    *text = SysAllocString(L"Hello World!");
    
  3. 빌드 메뉴에서 HelloCOMObject 빌드를 클릭합니다.

    이제 COM 개체가 솔루션의 일부분이 되고 연습의 첫 번째 부분이 완료되었습니다.

관리되는 프로젝트 만들기

솔루션에 관리되는 프로젝트를 추가하려면

  1. 솔루션 탐색기에서 InteropSolution을 마우스 오른쪽 단추로 클릭하고 추가를 가리킨 다음 새 프로젝트를 클릭합니다.

  2. 프로젝트 형식 창에서 Visual C#을 확장하고 스마트 장치를 클릭합니다. 그런 다음 템플릿 창에서 스마트 장치 프로젝트를 클릭하고 이름 상자에 SayHello를 입력한 다음 확인을 클릭합니다.

  3. 새 스마트 장치 프로젝트 추가 대화 상자에서 장치 응용 프로그램을 클릭한 다음 확인을 클릭합니다.

    관리되는 SayHello 프로젝트가 솔루션의 일부분으로 만들어지고 디자이너 창에 Windows Mobile 5.0 Pocket PC 폼이 표시됩니다.

COM 개체를 관리되는 프로젝트의 참조로 추가

COM 개체를 관리되는 프로젝트의 참조로 추가하려면

  1. 솔루션 탐색기에서 SayHello 프로젝트를 마우스 오른쪽 단추로 클릭한 다음 참조 추가를 클릭합니다.

  2. 참조 추가 대화 상자에서 찾아보기를 클릭합니다.

    찾는 위치 상자에 SayHello 폴더가 표시됩니다.

  3. 부모 폴더(이 연습에서는 InteropSolution)로 이동합니다.

  4. 폴더 내용이 창에 표시되면 HelloCOMObject, Windows Mobile 5.0 Pocket PC SDK (ARMV4), Debug를 차례로 두 번씩 클릭한 다음 HelloCOMObject.dll을 클릭합니다.

  5. 확인을 클릭하여 참조 추가 대화 상자를 닫습니다.

    참고:

    관리자로 로그인되어 있어야 합니다. Windows Vista에서는 Visual Studio를 시작할 때 관리자 권한으로 실행을 선택합니다.

  6. 솔루션 탐색기에서 Form1.cs를 마우스 오른쪽 단추로 클릭한 다음 코드 보기를 클릭합니다.

  7. 파일의 맨 위에 있는 Using directives 영역에 다음 코드를 추가합니다.

    using HelloCOMObjectLib;
    

관리되는 프로젝트에 이벤트 처리 추가

관리되는 프로젝트에 이벤트 처리를 추가하고 빌드하려면

  1. Form1 디자이너를 엽니다.

  2. 도구 상자에서 Button을 폼으로 끌어 옵니다.

  3. 단추를 두 번 클릭하여 Click 이벤트에서 코드 편집기를 엽니다.

  4. 단추에 대한 다음과 같은 이벤트 처리 코드를 삽입합니다.

    string text;
    HelloClass h = new HelloClass();
    h.HelloWorld(out text);
    MessageBox.Show(text);
    
  5. 빌드 메뉴에서 SayHello 빌드를 클릭합니다.

솔루션 마지막 조정

배포할 수 있도록 솔루션을 구성하려면

  1. 솔루션 탐색기에서 SayHello 프로젝트를 마우스 오른쪽 단추로 클릭한 다음 시작 프로젝트로 설정을 클릭합니다.

  2. 솔루션 탐색기에서 InteropSolution 솔루션을 마우스 오른쪽 단추로 클릭한 다음 프로젝트 종속성을 클릭합니다.

  3. 프로젝트 종속성 대화 상자의 프로젝트 드롭다운 목록에서 SayHello를 선택하고 다음에 종속 상자에서 HelloCOMObject를 선택합니다.

  4. 확인을 클릭합니다.

    이제 솔루션을 배포할 준비가 되었습니다.

혼합 솔루션 배포

솔루션을 배포하려면

  1. 디버그 메뉴에서 디버깅하지 않고 시작을 클릭합니다.

  2. 배포 대화 상자에서 Windows Mobile5.0 Pocket PC Emulator를 클릭한 다음 배포를 클릭합니다.

연습: 관리 코드와 네이티브 코드가 모두 포함된 솔루션 디버깅에서 이 솔루션을 사용할 수 있도록 저장합니다.

참고 항목

개념

장치에 대한 COM 상호 운용성

참조

Visual Basic 및 Visual C#(스마트 장치 작업 절차)