Delen via


Verwijzingspunten

Verwijzingspunten zijn de eenvoudigste aanwijzers en vereisen de minste hoeveelheid verwerking door de client-stub. Wanneer een clientprogramma een verwijzingswijzer doorgeeft aan een externe procedure, bevat de verwijzingswijzer altijd het adres van een geldig geheugenblok. Het verwijst nog steeds naar hetzelfde geheugenblok wanneer de externe procedure is voltooid. Deze aanwijzers worden voornamelijk gebruikt om verwijzingssemantiek te implementeren en om [uit te] parameters in C toe te staan.

In het volgende voorbeeld wordt de waarde van de aanwijzer niet gewijzigd tijdens het aanroepen, hoewel de inhoud van de gegevens op het adres dat door de aanwijzer wordt aangegeven, kan veranderen.

gegevens wijzigen op een adres van een statische verwijzingswijzer

Een verwijzingswijzer heeft de volgende kenmerken:

  • Deze verwijst altijd naar geldige opslag en heeft nooit de waarde NULL-.
  • Het verandert nooit tijdens een gesprek en verwijst altijd naar dezelfde opslag vóór en na de aanroep.
  • Gegevens die door de externe procedure worden geretourneerd, worden naar de bestaande opslag geschreven.
  • De opslag waarnaar wordt verwezen door een verwijzingspunt, kan niet worden geopend door een andere aanwijzer of een andere naam in de functie.

Gebruik het kenmerk [ref] om referentiepunten op te geven in interfacedefinities, zoals wordt weergegeven in het volgende voorbeeld.

/* IDL file */
[ 
  uuid(ba209999-0c6c-11d2-97cf-00c04f8eea45),
  version(1.0)
]
interface RefPtrInterface
{
  void RemoteFn([in, out, ref] char *pChar);
}

In dit voorbeeld wordt de parameter pChar- gedefinieerd als een aanwijzer naar één teken, niet als een matrix met tekens. Het is een parameter [out] en een verwijzingsaanwijzer die verwijst naar het geheugen dat door de serverroutine RemoteFn wordt gevuld met gegevens.