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.
Bestimmt, ob genügend Speicher zum Zuordnen eines Speicherhandles von size Bytes verfügbar ist.
BOOL _MemAvail(unsigned long size)
unsigned int size; /* Size of memory handle in bytes. */
Hinweise
Die Funktion gibt Wahr (.T.) zurück (ganze Zahl ungleich 0), wenn genügend Speicher verfügbar ist. Andernfalls wird Falsch (.F.) zurückgegeben.
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 so lange eine verkettete Liste von 1 KB-Speicherhandles erstellt, bis der verfügbare Speicher belegt ist. Dann werden die Zuweisungen freigegeben und die Zahl der durchgeführten Zuweisungen gemeldet. Mit _MemAvail( ) wird die erste WHILE-Schleife beendet.
Visual FoxPro-Code
SET LIBRARY TO MEMAVAIL
? MEMAVAIL() && displays approx. memory available in K
C-Code
#include <pro_ext.h>
#define ALLOCSIZE 1024
FAR Example(ParamBlk FAR *parm)
{
int nHandles = 0;
MHANDLE head = 0, mh;
while (_MemAvail(ALLOCSIZE))
{
mh = _AllocHand(ALLOCSIZE);
*((MHANDLE *) _HandToPtr(mh)) = head;
head = mh;
nHandles++;
}
_RetInt(nHandles, 10);
while (head != 0)
{
mh = *((MHANDLE *) _HandToPtr(head));
_FreeHand(head);
head = mh;
}
}
FoxInfo myFoxInfo[] = {
{"MEMAVAIL", (FPFI) Example, 0, ""},
};
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 | _HUnlock( ), API-Bibliotheksroutine | _SetHandSize( ), API-Bibliotheksroutine | Zugreifen auf die Visual FoxPro-API