Freigeben über


Schnittstellenmarshalling

Sofern Sie nicht zweifelsfrei wissen, dass Ihre Schnittstelle niemals über Apartment-, Thread- oder Prozessgrenzen hinweg verwendet wird, müssen Sie entscheiden, wie Sie Marshallingunterstützung für Ihre Schnittstellen bereitstellen. Es gibt drei Möglichkeiten, Marshallingunterstützung bereitzustellen:

  • Schreiben Sie Ihren eigenen Proxy-/Stubcode, der den COM-Kanal aufruft, der wiederum die RPC-Laufzeitbibliotheken aufruft. Theoretisch ist es möglich, dies zu tun, aber in der Praxis ist es fast unmöglich, auf einen erheblichen Aufwand zu verzichten.
  • Beschreiben Sie Ihre Schnittstellen in einer IDL-Datei (Interface Definition Language), und verwenden Sie den MIDL-Compiler, um eine Proxy-/Stub-DLL zu generieren. Diese Methode bietet die beste Leistung und die größte Flexibilität in Bezug auf akzeptable Datentypen. Mithilfe von MIDL-generierten Proxystubs können Sie nicht nur die Speicherverwaltung steuern, sondern auch das Marshallen und Entkoppeln komplexer Datentypen auf verschiedenen Plattformen.
  • Verwenden Sie MIDL, um eine Typbibliothek zu generieren, die das System zur Bereitstellung von Marshallingunterstützung zur Laufzeit verwendet. Dies ist die einfachste Möglichkeit, Marshallingunterstützung zu implementieren. Sie müssen nur eine Typbibliothek generieren und registrieren. Ihre Schnittstellen müssen Automation-kompatibel sein ( entweder oleautomation oder dual), wodurch einige Einschränkungen hinsichtlich der Datentypen gelten, die Sie als Methodenparameter verwenden können. In den meisten Fällen überwiegt jedoch der Vorteil, dass Ihre Schnittstellen für Programme zugänglich sind, die in anderen Sprachen wie Microsoft Visual Basic und Java geschrieben wurden, die Einschränkungen für Datentypen.

Objektübergreifende Kommunikation