Zeiger und Speicherbelegung
Die Möglichkeit zum Ändern des Arbeitsspeichers durch Zeiger erfordert häufig, dass der Server und der Client genügend Arbeitsspeicher für die Elemente im Array zuordnen.
Wenn ein Stub Arbeitsspeicher zuordnen oder freigeben muss, ruft er Laufzeitbibliotheksfunktionen auf, die wiederum die Funktionen midl _ user _ allocate und midl _ user _ freeaufrufen. Diese Funktionen sind nicht als Teil der Laufzeitbibliothek enthalten. Sie müssen Ihre eigenen Versionen dieser Funktionen schreiben und sie mit Ihrer Anwendung verknüpfen. Auf diese Weise können Sie entscheiden, wie Der Arbeitsspeicher verwaltet werden soll. Wenn Sie Ihre IDL-Datei im OSF-Kompatibilitätsmodus (/osf) kompilieren, 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);
}