coinitializeex 예제

Tempo de leitura: menos de 1 minuto

0 Flares Filament.io 0 Flares ×

이 섹션과 다음 (“EXE COM 서버 및 아파트”)는 여러 테스트 프로그램에 대한 자세한 설명으로 가득합니다. 이 문서의 주요 목표는 명확한 예제로 개념을 표시하는 것입니다. 이 섹션에서각 테스트 프로그램은 특정 유형의 STA를 시연하는 것을 목표로 합니다(초보자는 실제로 세 가지 유형의 STA가 있다는 것을 알고 놀랄 수 있습니다!). 독자는 STA를 시연하는 우리의 접근 방식이 매우 간단하다는 것을 주목할 것입니다. 저에게 주어진 과제는 이 간단한 테스트 원칙을 사용하여 다양한 유형의 STA를 명확하게 설명하는 것입니다. 위의 예제에서는 두 개의 STA생성을 보여 주십습니다. 스레드 아이디를 통해 증명합니다. main() 함수부터 시작하여 프로그램을 신중하게 살펴보겠습니다. 이 스레드 에는 메시지 루프가 정의되어 있지 않습니다.

또한 ISimpleCOMObject1 인터페이스를 기반으로 COM 개체를 만듭니다. 초기화() 및 초기화()에 대한 호출은 성공적으로 진행됩니다. 메서드 호출은 동일한 STA 내에서 이루어지며 마샬링이 없고 메시지 루프가 필요하지 않습니다. ATL에는 문자열을 변환하기 위한 편리한 매크로 집합이 있습니다. 유니코드 문자열을 ANSI로 변환하려면 W2A() 매크로(“와이드에서 ANSI”에 대한 니모닉)를 사용합니다. 실제로 더 정확하게 말하려면 “OLE”가 COM 또는 OLE 소스에서 온 문자열을 나타내는 OLE2A()를 사용해야 합니다. 어쨌든 이러한 매크로를 사용하는 방법에 대한 예는 다음과 같습니다. 다음은 문서에서 다루는 COM 개념을 보여 주는 두 가지 예입니다. 코드는 문서의 샘플 프로젝트에도 포함되어 있습니다.

COM은 간단히 말해서 다양한 응용 프로그램 및 언어에서 바이너리 코드를 공유하는 방법입니다. 이는 소스 코드의 재사용을 촉진하는 C++ 접근 방식과는 다릅니다. ATL은 이것의 완벽한 예입니다. 소스 수준 재사용은 잘 작동하지만 C++에서만 작동합니다. 또한 프로젝트에서 코드의 여러 복사본을 갖는 것은 말할 것도없고 이름 충돌의 가능성을 소개합니다. 첫 번째 예제에서는 단일 인터페이스를 노출하는 COM 개체를 사용하는 방법을 보여 줍니다. 이것은 당신이 이제까지 만날 수있는 가장 간단한 경우입니다. 이 코드는 셸에 포함된 Active Desktop 공동 클래스를 사용하여 현재 배경 화면의 파일 이름을 검색합니다.

이 코드가 작동하려면 Active Desktop을 설치해야 합니다. 세 번째 매개 변수는 구성 요소가 실행되는 컨텍스트를 지정합니다.

Os comentários foram encerrados, mas trackbacks e pingbacks estão abertos.