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.