_HUnLock( ) (Rutina de biblioteca API)

Desbloquea un controlador de memoria de manera que Visual FoxPro pueda tener acceso al mismo durante la reorganización de la memoria.

void _HUnLock(MHANDLE hand)
MHANDLE hand;            /* Memory handle. /

Observaciones

_HUnLock( ) no origina la reorganización de la memoria.

Para obtener más información acerca de cómo crear una biblioteca API e integrarla con Visual FoxPro, vea Acceso a la API de Visual FoxPro.

Ejemplo

El siguiente ejemplo utiliza _RetDateStr( ) para devolver un tipo de fecha de Visual FoxPro, siempre y cuando el parámetro de carácter sea una fecha adecuada. Ejecute _HUnLock( ) cuando ya no necesite tener bloqueados los controladores de memoria, ya que el rendimiento de Visual FoxPro se puede ver afectado negativamente por los controladores de memoria bloqueados.

Código Visual FoxPro

SET LIBRARY TO HUNLOCK 
? DATES("2/16/95")  && returns date {02/16/95}

Código C

#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
};

Vea también

_AllocHand( ) (Rutina de biblioteca API) | _FreeHand( ) (Rutina de biblioteca API) | _GetHandSize( ) (Rutina de biblioteca API) | _HandToPtr( ) (Rutina de biblioteca API) | _HLock( ) (Rutina de biblioteca API) | _MemAvail( ) (Rutina de biblioteca API) | _SetHandSize( ) (Rutina de biblioteca API)