Freigeben über


Datendarstellung

Computerumgebungen können sich erheblich unterscheiden, wie Netzwerkarchitekturen. Um diese Unterschiede zu berücksichtigen, können Sie mit MIDL die Darstellung von Daten ändern. Sie können die Entwicklung manchmal vereinfachen, indem Sie Daten in ein Format konvertieren, das Ihre Anwendung einfacher verarbeiten kann. Sie können das Datenformat Ihrer Anwendung so ändern, dass sie effizienter über das Netzwerk übertragen werden kann.

Die [transmit_as] und [represent_as] Attribute weisen den Compiler an, einen transmissiblen Typ zuzuordnen, den der Stub zwischen Client und Server übergibt, mit einem Benutzertyp, den die Client- und Serveranwendungen verwenden. Sie müssen die Routinen angeben, die die Konvertierung zwischen dem Benutzertyp und dem übertragbaren Typ ausführen, und die Routinen, um den Speicher freizugeben, der zum Speichern der konvertierten Daten verwendet wurde. Die Verwendung des [transmit_as] IDL-Attributs oder des [represent_as] ACF-Attribut weist den Stub an, diese Konvertierungsroutinen vor und nach der Übertragung aufzurufen. Mit dem attribut [transmit_as] können Sie einen Datentyp in einen anderen Datentyp für die Übertragung über das Netzwerk konvertieren. Mit dem [represent_as] Attribut können Sie steuern, wie Daten aus dem Netzwerk der Anwendung präsentiert werden.

Die [wire_marshal] und [user_marshal] Attribute sind Microsoft-Erweiterungen für die OSF-DCE IDL. Ihre Syntax und Funktionalität ähneln der [transmit_as] und [represent_as] Attributen. Der Unterschied besteht darin, dass Sie die Daten direkt marshallen, anstatt die Daten von einem Typ in einen anderen zu konvertieren. Dazu müssen Sie die externen Routinen für die Größenanpassung des Datenpuffers auf client- und Serverseite bereitstellen, die Daten auf client- und serverseitiger Seite marshallen und aufheben und die Daten auf serverseitiger Seite freigeben. Der MIDL-Compiler generiert Formatcodes, die das NDR-Modul anweisen, diese externen Routinen bei Bedarf aufzurufen.

Die [wire_marshal] und [user_marshal] Attribute ermöglichen das Marshallen von Datentypen, die andernfalls nicht über Prozessgrenzen hinweg übertragen werden konnten. Da der Typkonvertierung weniger Aufwand zugeordnet ist, [wire_marshal] und [user_marshal] zur Laufzeit eine verbesserte Leistung bieten, im Vergleich zu [transmit_as] und [represent_as]. Die [wire_marshal] und [user_marshal] Attribute schließen sich gegenseitig und im Hinblick auf die [transmit_as] und [represent_as] attribute für einen bestimmten Typ gegenseitig aus.

Es ist wichtig zu beachten, dass die Implementierung der [wire_marshal] und [user_marshal] Attributen den von OSF-DCE Spezifikation vorgegebenen Marshallregeln entsprechen muss. Aus diesem Grund wird die Verwendung dieser Attribute nicht empfohlen, wenn Sie nicht mit dem Drahtprotokoll vertraut sind. Weitere Informationen zur NDR-Syntaxübertragung finden Sie unter www.opengroup.org.

In diesem Abschnitt finden Sie eine kurze Übersicht über diese Attribute für MIDL-Attribute in den folgenden Themen: