Delen via


Gegevensweergave

Computingomgevingen kunnen aanzienlijk verschillen, net als netwerkarchitecturen. Om aan deze verschillen tegemoet te komen, kunt u met MIDL de manier wijzigen waarop u gegevens vertegenwoordigt. U kunt de ontwikkeling soms vereenvoudigen door gegevens te converteren naar een indeling die uw toepassing gemakkelijker kan verwerken. U kunt de gegevensindeling van uw toepassing wijzigen, zodat deze efficiënter kan worden verzonden via het netwerk.

De [transmit_as] en [represent_as] kenmerken instrueren de compiler om een overdraagbaar type te koppelen dat de stub doorgeeft tussen de client en de server, met een gebruikerstype dat de client- en servertoepassingen gebruiken. U moet de routines opgeven die de conversie tussen het gebruikerstype en het overdraagbare type uitvoeren, en de routines om het geheugen vrij te geven dat is gebruikt voor het opslaan van de geconverteerde gegevens. Met behulp van het [transmit_as] IDL-kenmerk of het [represent_as] ACF-kenmerk instrueert de stub om deze conversieroutines vóór en na verzending aan te roepen. Met het [transmit_as] kenmerk kunt u één gegevenstype converteren naar een ander gegevenstype voor overdracht via het netwerk. Met het kenmerk [represent_as] kunt u bepalen hoe gegevens uit het netwerk aan de toepassing worden gepresenteerd.

De [wire_marshal] en [user_marshal] kenmerken zijn Microsoft-extensies voor de OSF-DCE IDL. De syntaxis en functionaliteit zijn vergelijkbaar met die van de opgegeven DCE-[transmit_as] en [represent_as] respectievelijk kenmerken. Het verschil is dat u, in plaats van de gegevens van het ene type naar het andere te converteren, de gegevens rechtstreeks weergeeft. Hiervoor moet u de externe routines opgeven voor het aanpassen van de grootte van de gegevensbuffer aan de client- en serverzijden, marshaling en het loskoppelen van de gegevens aan de client- en serverzijde, en het vrijmaken van de gegevens aan de serverzijde. De MIDL-compiler genereert indelingscodes die de NDR-engine instrueren deze externe routines aan te roepen wanneer dat nodig is.

De [wire_marshal] en [user_marshal] kenmerken maken het mogelijk om marshal gegevenstypen te gebruiken die anders niet kunnen worden verzonden over procesgrenzen. Omdat er minder overhead is gekoppeld aan de typeconversie, biedt [wire_marshal] en [user_marshal] verbeterde prestaties tijdens de uitvoering, in vergelijking met [transmit_as] en [represent_as]. De [wire_marshal] en [user_marshal] kenmerken sluiten elkaar wederzijds uit met betrekking tot elkaar en met betrekking tot de [transmit_as] en [represent_as] kenmerken voor een bepaald type.

Het is belangrijk te weten dat de implementatie van de [wire_marshal] en [user_marshal] kenmerken de marshallregels moet volgen die zijn bepaald door OSF-DCE specificatie. Daarom wordt het gebruik van deze kenmerken niet aanbevolen als u niet bekend bent met het wire-protocol. Meer informatie over de NDR-syntaxisoverdracht vindt u op www.opengroup.org.

In deze sectie vindt u een kort overzicht van deze voor MIDL-kenmerken, in de volgende onderwerpen: