Die _ kostenlose _ Midl-Benutzerfunktion
Die kostenlose Midl-Benutzerfunktion _ _ muss von RPC-Entwicklern bereitgestellt werden. Es belegt Arbeitsspeicher für die RPC-Stubs und Bibliotheksroutinen. Ihre _ _ kostenlose Midl-Benutzerfunktion muss mit dem folgenden Prototyp übereinstimmen:
void __RPC_USER midl_user_free(void * pBuffer);
Der pBuffer-Parameter gibt einen Zeiger auf den Speicher an, der freigegeben werden soll. Sowohl die Clientanwendung als auch die Serveranwendung müssen die kostenlose Midl-Funktion für _ Benutzer _ implementieren, es sei denn, Sie kompilieren im OSF-Kompatibilitätsmodus (/osf). Die _ funktion _ "midl user free" muss in der Lage sein, den gesamten Speicher frei zu geben, der vom midl-Benutzer _ _ belegtwird.
Anwendungen und Stubs rufen midl _ user _ free auf, wenn es um zugeordnete Objekte geht:
- Die Serveranwendung sollte midl _ user _ free aufrufen, um von der Anwendung belegten Arbeitsspeicher freizugeben, z. B. beim Löschen eines dynamisch zugeordneten Datenknotens.
- Der Serverstub ruft midl _ user _ free auf, um Arbeitsspeicher auf dem Server freizugeben, nachdem alle [ ] out-Argumente, [ in , ] [ ] out-Argumente und der Funktionsrückgabewert gemarshallt wurden.
Beispielsweise implementiert das RPC-Windows-Beispielprogramm, das "Hello, world" anzeigt, midl _ user _ free in Bezug auf die C-Funktion free:
void __RPC_USER midl_user_free(void __RPC_FAR * p)
{
free(p);
}
Hinweis
Wenn das RpcSs-Paket aktiviert ist (z. B. aufgrund der Verwendung des [ Attributs enable _ allocate), ] sollte Ihr Serverprogramm RpcSmFree verwenden, um Arbeitsspeicher freizugeben. Weitere Informationen finden Sie unter RpcSs-Speicherverwaltungspaket.