Estoy integrando una .dll autocontenida, con algunas funciones propias. Hasta el momento he logrado hacer pruebas satisfactorias gracias a los ejemplos tanto en \samples, como aquí en el foro.
Hasta el momento todo iba bien, hasta que me atoré en una funcioncita que recibe como parámetro una fecha DATE y devuelve otra fecha DATE.
Solicito a los conocedores de C, algún ejemplo para poder solventar esto.
Aquí está el código que estoy probando, y no logro que me devuelva la fecha (DATE). Me devuelve un número.
- Code: Select all Expand view
- #include "FiveWin.ch"
static hDLL
function Main()
local hItem4 := ItemNew( Date() )
hDLL = LoadLibrary( "fapdll.dll" )
MsgInfo ( FirstMonthDay("DIA1MES", hItem4), "1er dia del mes" )
ItemRelease( hItem4 )
FreeLibrary( hDLL )
return nil
DLL FUNCTION FirstMonthDay( cProc AS LPSTR, pItem1 AS LONG ) AS LONG PASCAL LIB hDLL
#pragma BEGINDUMP
#include <hbapi.h>
#include <hbapiitm.h>
HB_FUNC( ITEMNEW )
{
hb_retnl( ( unsigned long ) hb_itemNew( hb_param( 1, HB_IT_ANY ) ) );
}
HB_FUNC( ITEMRELEASE )
{
hb_retl( hb_itemRelease( ( PHB_ITEM ) hb_parnl( 1 ) ) );
}
#pragma ENDDUMP
Aquí, dentro de la .dll:
- Code: Select all Expand view
- //-----------------------
Function Dia1Mes(dFecha)
Return ctod( "01/"+strZero(month(dFecha),2)+"/"+str(year(dFecha),4) )
#pragma BEGINDUMP
#include <windows.h>
#include <hbvm.h>
#include <hbapiitm.h>
LONG __stdcall __export FirstMonthDay( char * cProcName, PHB_ITEM pParam1 )
{
return hb_itemGetNL( hb_itemDoC( cProcName, 1, pParam1 ) ) ;
}
#pragma ENDDUMP
Muchas gracias, de antemano.
Saludos.