QStat 샘플: COM 개체를 래핑하여 비즈니스 논리 노출
업데이트: 2007년 11월
QStat 샘플에서는 C++를 사용하여 COM 개체에 대한 액세스를 래핑하고 해당 기능을 .NET Framework 클라이언트에 노출하는 DLL을 만드는 방법을 보여 줍니다.
보안 정보: |
---|
이 샘플 코드는 개념을 보여 주기 위해 제공되며 가장 안전한 코드 작성 방법을 제시하지 않을 수 있으므로 응용 프로그램이나 웹 사이트에서 사용할 수 없습니다. Microsoft는 샘플 코드를 원래 용도 이외의 다른 용도로 사용하는 경우 발생하는 부수적이나 파생적인 손해에 대해 책임을 지지 않습니다. |
샘플 및 이를 설치하기 위한 지침을 가져오려면
Visual Studio의 도움말 메뉴에서 샘플을 클릭합니다.
자세한 내용은 샘플 파일 찾기를 참조하십시오.
최신 버전 및 전체 샘플 목록은 Visual Studio 2008 Samples 페이지에서 온라인으로 사용할 수 있습니다.
컴퓨터의 하드 디스크에서도 샘플을 찾을 수 있습니다. 기본적으로 샘플과 추가 정보 파일은 \Program Files\Visual Studio 9.0\Samples\ 아래의 폴더에 복사됩니다. Visual Studio Express Edition의 경우에는 모든 샘플이 온라인에 있습니다.
샘플 빌드 및 실행
이 샘플을 빌드하려면
Visual Studio IDE에서 솔루션 파일인 QStat.sln을 로드합니다.
솔루션 탐색기에서 QStat 솔루션을 마우스 오른쪽 단추로 클릭합니다.
바로 가기 메뉴에서 솔루션 빌드를 클릭합니다.
이 샘플을 실행하려면
솔루션 탐색기에서 netClient 프로젝트를 마우스 오른쪽 단추로 클릭합니다.
디버그 메뉴에서 시작을 클릭합니다.
클라이언트가 시작되면 비즈니스 논리의 호출을 알리는 여러 개의 메시지가 콘솔에 출력됩니다.
참고: |
---|
구성 요소 간의 상호 작용에 대한 자세한 내용을 보려면 중단점을 설정하거나 디버그 메뉴를 사용하여 샘플 코드를 한 단계씩 실행하거나 프로시저 단위로 실행하는 방법으로 코드를 단계별로 실행합니다. |
프로젝트 설명
이 샘플의 초점은 비즈니스 논리의 구현 자체에 있는 것이 아니라 COM 클라이언트와 .NET Framework 클라이언트 모두에서 비즈니스 논리에 액세스한다는 점에 있습니다. 따라서 이 샘플의 비즈니스 논리는 비교적 흥미로운 점이 없습니다. 사실, 이 샘플의 비즈니스 논리는 기하 평균, 조화 평균 및 평방 평균을 계산하는 간단한 산술 연산을 수행하고 그 결과를 클라이언트에 반환합니다.
프로그래밍 관례상 비즈니스 논리와 해당 비즈니스 논리(이 경우 COM)를 노출하는 기반 구조는 분리하는 것이 좋습니다. 그러나 이 샘플에서는 비즈니스 논리가 소비될 COM 개체 내에 직접 구현되어 있으며 이 COM 개체에는 해당 COM 개체를 통과할 때를 제외하고는 내부 비즈니스 논리에 대한 액세스 권한이 없는 것으로 가정합니다.
샘플에서는 #import를 통해 COM 개체를 소비하고, .NET Framework 클라이언트에서 소비할 .NET Framework 클래스를 노출하는 래퍼 DLL을 만듭니다. 이 작업은 #import를 통해 가져온 COM 스마트 포인터 데이터 멤버가 들어 있는 네이티브 C++ 클래스 nativeMeanCalc를 정의함으로써 수행됩니다. .NET Framework 클래스는 네이티브 C++ 클래스에 대한 포인터를 포함하도록 정의됩니다. .NET Framework 클래스인 netMeanCalc에는 대상 COM 개체에 액세스할 수 있도록 하는 nativeMeanCalc 개체에 대한 포인터가 포함됩니다. netMeanCalc는 .NET Framework 클라이언트에서 소비할 공용 클래스입니다.
다음 두 개의 클라이언트 프로젝트가 있습니다.
nativeClient - COM 클라이언트이며 네이티브 C++로 구현됩니다.
netClient - C++의 새 구문을 사용하여 작성됩니다.
클래스 및 키워드
이 샘플에서는 다음의 키워드를 보여 줍니다.
__gc, #using, #import, try, catch, _com_error, Console::WriteLine