DLL in Harbour

375 views
Skip to first unread message

Andrés García

unread,
Jun 29, 2017, 11:33:40 AM6/29/17
to Harbour Users
Hello,
I would like to know how to load a dll into .prg file

Jeff Stone

unread,
Jun 29, 2017, 3:24:38 PM6/29/17
to Harbour Users
/ *
 * Jose Carlos da Rocha
 * Work with xBase code DLL for use with Harbour
 * Sao Paulo - 09/09/2014
 * Based on examples and other BabuDLL
 * /
 #include "FiveWin.ch"
 FUNCTION Main ()
 Local oWndMain, oBarMain
 DEFINE WINDOW oWndMain TITLE "Window into the EXE" MDI BuildMenuMain MENU () COLOR "N / W"
 DEFINE ButtonBar oBarMain oWndMain OF SIZE 60, 60 2007
 DEFINE BUTTON OF ACTION oBarMain WinExec ("RunDLL32.exe rochadll.dll, CusTstBrw")
 DEFINE BUTTON OF ACTION oBarMain UseDLL ("CusTstBrw", "rochadll.dll")
 SET OF MESSAGE TO oWndMain "Testing the FiveWin DLLs" CENTERED
 ACTIVATE WINDOW oWndMain MAXIMIZED VALID MsgYesNo ("You want to go?")
 RETURN nil
 FUNCTION BuildMenuMain ()
 Local oMenu
 MENU oMenu
 MENUITEM "Directors"
 MENU
 MENUITEM "& Customers ..." ACTION HbDllEntry ("Customer") MESSAGE "Maintenance Clients"
 MENUITEM "& Browse ..." ACTION HbDllEntry ("CusTeste") MESSAGE "Guest Browse"
 MENUITEM "& Customer ..." ACTION CusTstBrw () MESSAGE "Guest Browse"
 SEPARATOR
 MENUITEM "& Exit" ACTION ownd: End ();
 MESSAGE "System Exit"
 ENDMENU
 oMenu: AddMdi () // Add standard MDI options menu
 ENDMENU
 return oMenu
 FUNCTION UseDLL (cFuncName, cDllName)
 Local hDLL, cFarProc
 hDLL = LoadLibrary (cDllName)
 if hDll> 32
 cFarProc: = GetProcAddress (hDLL, "DLLSYMINIT", .T, _INT).
 CallDLL (cFarProc)
 Eval (& ("{||" + cFuncName + "()}"))
 endif
 return nil
 // ------------------------------------------------ ------------------------- //
 #include "dll.ch"
 DLL32 FUNCTION CusTstBrw () AS LONG PASCAL LIB "rochadll.dll"
 DLL32 FUNCTION HBDLLENTRY (cProc AS LPSTR) AS LONG PASCAL LIB "rochadll.dll"
 DLL32 FUNCTION HBDLLENTRY2 (cProc AS LPSTR, pItem1 THE LONG, LONG pItem2 AS) AS LONG PASCAL LIB "rochadll.dll"
 DLL32 FUNCTION HBDLLENTRY3 (cProc AS LPSTR, pItem1 AS _INT, pItem2 _INT AS) AS _INT PASCAL LIB "rochadll.dll"

Pete

unread,
Jun 30, 2017, 5:24:24 AM6/30/17
to Harbour Users


On Thursday, 29 June 2017 18:33:40 UTC+3, Andrés García wrote:
Hello,
I would like to know how to load a dll into .prg file

Hi,

take a look at this sample (hb32):
https://github.com/harbour/core/blob/master/tests/dynwin.prg

or
(if you prefer the refined (hb34) version of the same sample)
https://github.com/vszakats/harbour-core/blob/master/tests/dynwin.prg




Reply all
Reply to author
Forward
0 new messages