Hace tiempo publicastes la rutina de FUNSWAP, yo la quiero utilizar para reemplazar la funcion DATE()
FunSwap("DATE","MYDATE")
Pero solo me funciona en el PRG principal, yo tengo puesta la llamada dentro de la funcion Main(), esperando que reemplazara DATE() en TODO EL SISTEMA, pero no ocurre asi.
La funcion de reemplazo tambien esta dentro de ese prg, y no es static.
Function MYDATE()
Return CTOD("01/01/2013")
Me falto algo.
El codigo es el mismo que publicastes
Code: Select all
//------------------------------------------------------------
#pragma BEGINDUMP
#include <windows.h>
#include <hbapi.h>
HB_FUNC( NEXTMEM ) // --> nHardwareMemory
{
MEMORYSTATUSEX mst;
memset( &mst, 0, sizeof( MEMORYSTATUSEX ) );
mst.dwLength = sizeof( MEMORYSTATUSEX );
GlobalMemoryStatusEx( &mst );
hb_retnll( mst.ullAvailPhys );
}
HB_FUNC( CURDRIVE )
{
char szCurDrive[ 1 ];
const char * szDrive;
szCurDrive[ 0 ] = ( ( char ) hb_fsCurDrv() ) + 'A';
hb_retclen( szCurDrive, 1 );
}
typedef void ( * PFUNC ) ( void );
HB_FUNC( FUNSWAP )
{
PHB_SYMB symFirst = hb_dynsymSymbol( hb_dynsymFindName( hb_parc( 1 ) ) );
PHB_SYMB symLast = hb_dynsymSymbol( hb_dynsymFindName( hb_parc( 2 ) ) );
PHB_FUNC pFirst = symFirst->value.pFunPtr;
symFirst->value.pFunPtr = symLast->value.pFunPtr;
hb_retnl( ( LONG ) pFirst );
}
HB_FUNC( EXECPTR )
{
PFUNC p = ( PFUNC ) hb_parnl( hb_pcount() );
p();
}
#pragma ENDDUMP
Cualquier Ayuda sera bienvenida
Desde Chile
Adolfo