Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Hebt die Sperrung eines Speicherhandles auf, damit Visual FoxPro während der Speicherreorganisation darauf zugreifen kann.
void _HUnLock(MHANDLE hand)
MHANDLE hand; /* Memory handle. /
Hinweise
_HUnLock( ) löst keine Reorganisation des Speichers aus.
Weitere Informationen zum Erstellen einer API-Bibliothek und ihrer Integration in Visual FoxPro finden Sie unter Zugreifen auf die Visual FoxPro-API.
Beispiel
Im folgenden Beispiel wird mit _RetDateStr( ) ein Datentyp von Visual FoxPro zurückgegeben, wobei angenommen wird, dass es sich bei dem Zeichenparameter um ein korrektes Datum handelt. _HUnLock( ) wird aufgerufen, wenn Speicherhandles nicht mehr gesperrt sein müssen, da die Leistungsfähigkeit von Visual FoxPro durch gesperrte Speicherhandles beeinträchtigt werden kann.
Visual FoxPro-Code
SET LIBRARY TO HUNLOCK
? DATES("2/16/95") && returns date {02/16/95}
C-Code
#include <pro_ext.h>
void FAR dates(ParamBlk FAR *parm)
{
MHANDLE mh;
char FAR *instring;
if ((mh = _AllocHand(parm->p[0].val.ev_length + 1)) == 0)
{
_Error(182); // "Insufficient memory"
}
_HLock(parm->p[0].val.ev_handle);
instring = _HandToPtr(parm->p[0].val.ev_handle);
instring[parm->p[0].val.ev_length] = '\0';
_RetDateStr(instring);
_HUnLock(parm->p[0].val.ev_handle);
}
FoxInfo myFoxInfo[] = {
{"DATES", (FPFI) dates, 1, "C"}
};
FoxTable _FoxTable = {
(FoxTable FAR *) 0, sizeof(myFoxInfo)/sizeof(FoxInfo), myFoxInfo
};
Siehe auch
_AllocHand( ), API-Bibliotheksroutine | _FreeHand( ), API-Bibliotheksroutine | _GetHandSize( ), API-Bibliotheksroutine | _HandToPtr( ), API-Bibliotheksroutine | _HLock( ), API-Bibliotheksroutine | _MemAvail( ), API-Bibliotheksroutine | _SetHandSize( ), API-Bibliotheksroutine