인터페이스 마샬링

인터페이스가 아파트, 스레드 또는 프로세스 경계에서 사용되지 않는다는 것을 의심할 여지 없이 알지 못하면 인터페이스에 대한 마샬링 지원을 제공하는 방법을 결정해야 합니다. 마샬링 지원을 제공하는 세 가지 방법이 있습니다.

  • COM 채널을 호출하는 고유한 프록시/스텁 코드를 작성합니다. 이 코드는 RPC 런타임 라이브러리를 호출합니다. 이론적으로는 이 작업을 수행할 수 있지만 실제로는 상당한 노력 없이는 거의 불가능합니다.
  • IDL(인터페이스 정의 언어) 파일에서 인터페이스를 설명하고 MIDL 컴파일러를 사용하여 프록시/스텁 DLL을 생성합니다. 이 메서드는 허용되는 데이터 형식 측면에서 최상의 성능과 가장 유연성을 제공합니다. MIDL에서 생성된 프록시 스텁을 사용하면 메모리 관리뿐만 아니라 여러 플랫폼에서 복잡한 데이터 형식의 마샬링 및 결합 해제도 제어할 수 있습니다.
  • MIDL을 사용하여 시스템이 런타임에 마샬링 지원을 제공하는 데 사용하는 형식 라이브러리를 생성합니다. 이는 마샬링 지원을 구현하는 가장 쉬운 방법입니다. 형식 라이브러리를 생성하고 등록하기만 하면 됩니다. 인터페이스는 자동화 호환( oleautomation 또는 이중)이어야 하며, 메서드 매개 변수로 사용할 수 있는 데이터 형식의 종류에 몇 가지 제한이 있습니다. 그러나 대부분의 경우 Microsoft Visual Basic 및 Java와 같은 다른 언어로 작성된 프로그램에서 인터페이스에 액세스할 수 있다는 장점이 데이터 형식의 제한보다 큽니다.

개체 간 통신