Teilen über


Zeiger und Speicherzuordnung

Die Möglichkeit zum Ändern des Speichers durch Zeiger erfordert häufig, dass der Server und der Client genügend Arbeitsspeicher für die Elemente im Array zuweisen.

Wenn ein Stub Arbeitsspeicher zuweisen oder freigeben muss, ruft er Laufzeitbibliotheksfunktionen auf, die wiederum die Funktionen midl_user_allocate und midl_user_freeaufrufen. Diese Funktionen sind nicht Bestandteil der Laufzeitbibliothek. Sie müssen ihre eigenen Versionen dieser Funktionen schreiben und mit Ihrer Anwendung verknüpfen. Auf diese Weise können Sie entscheiden, wie Der Speicher verwaltet werden soll. Beim Kompilieren Der IDL-Datei im OSF-Kompatibilitätsmodus (/osf) müssen Sie diese Funktionen nicht implementieren. Sie müssen diese Funktionen in die folgenden Prototypen schreiben:

void __RPC_FAR * __RPC_API midl_user_allocate(size_t len)

void __RPC_API midl_user_free(void __RPC_FAR * ptr)

Beispielsweise können die Versionen dieser Funktionen für eine Anwendung einfach Standardbibliotheksfunktionen aufrufen:

void __RPC_FAR * __RPC_API midl_user_allocate(size_t len)
{
    return(malloc(len));
}

void __RPC_API midl_user_free(void __RPC_FAR * ptr)
{
    free(ptr);
}