Result_call := hb_DynCall( {"CallGoal", Lib_h, HB_DYN_CALLCONV_STDCALL}, Prolog_Id_n )
#include "hbdyn.ch"
static hLib
//----------------------------------------------------------------//
function Main()
local nId, nRetCode
hLib = hb_libLoad( "INT386W.DLL" )
if ! Empty( hLib )
? "INT386W.DLL loaded!"
nId = LoadProlog()
? "Calling LoadProlog: " + If( nId > 0, "Succeeded!", "Failed!" )
? InitGoal( nId, "write('Hello World'). " )
? CallGoal( nId )
? InitGoal( nId, "input( `Please tell me your name`, Name ). " )
? CallGoal( nId )
? TellGoal( nId, "brian. " )
? InitGoal( nId, "write('What the,...World?'). " )
? CallGoal( nId )
? InitGoal( nId, "member( brown, [the,quick,brown,fox] ). " )
? CallGoal( nId )
? ExitGoal( nId )
? HaltProlog( nId )
hb_libFree( hLib )
endif
return nil
//----------------------------------------------------------------//
function LoadProlog( cCommandLine, nBufferSize, nEncryption, nTickle )
hb_default( @cCommandLine, "" )
hb_default( @nBufferSize, 0 )
hb_default( @nEncryption, 0 )
hb_default( @nTickle, 0 )
return hb_DynCall( { "LoadProlog", hLib, hb_bitOr( HB_DYN_CALLCONV_STDCALL, HB_DYN_CTYPE_LONG ),;
HB_DYN_CTYPE_CHAR_PTR, HB_DYN_CTYPE_LONG, HB_DYN_CTYPE_LONG, HB_DYN_CTYPE_LONG },;
cCommandLine, nBufferSize, nEncryption, nTickle )
//----------------------------------------------------------------//
function InitGoal( nId, cGoal )
return hb_DynCall( { "InitGoal", hLib, hb_bitOr( HB_DYN_CALLCONV_STDCALL, HB_DYN_CTYPE_CHAR_PTR ),;
HB_DYN_CTYPE_LONG, HB_DYN_CTYPE_CHAR_PTR }, nId, cGoal )
//----------------------------------------------------------------//
function CallGoal( nId )
return hb_DynCall( { "CallGoal", hLib, hb_bitOr( HB_DYN_CALLCONV_STDCALL, HB_DYN_CTYPE_CHAR_PTR ),;
HB_DYN_CTYPE_LONG }, nId )
//----------------------------------------------------------------//
function TellGoal( nId, cGoal )
return hb_DynCall( { "TellGoal", hLib, hb_bitOr( HB_DYN_CALLCONV_STDCALL, HB_DYN_CTYPE_CHAR_PTR ),;
HB_DYN_CTYPE_LONG, HB_DYN_CTYPE_CHAR_PTR }, nId, cGoal )
//----------------------------------------------------------------//
function ExitGoal( nId )
return hb_DynCall( { "ExitGoal", hLib, hb_bitOr( HB_DYN_CALLCONV_STDCALL, HB_DYN_CTYPE_BOOL ),;
HB_DYN_CTYPE_LONG }, nId )
//----------------------------------------------------------------//
function HaltProlog( nId )
return hb_DynCall( { "HaltProlog", hLib, hb_bitOr( HB_DYN_CALLCONV_STDCALL, HB_DYN_CTYPE_BOOL ),;
HB_DYN_CTYPE_LONG }, nId )
//----------------------------------------------------------------//
function CallOneGoal( nId, cGoal )
local cResult := InitGoal( nId, cGoal ) + CallGoal( nId, cGoal )
ExitGoal( nId )
return cResult
//----------------------------------------------------------------//