FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin for Harbour/xHarbour Converting from xHarbour to Harbour
Posts: 842
Joined: Mon Oct 10, 2005 01:29 PM
Converting from xHarbour to Harbour
Posted: Mon Sep 22, 2014 10:43 AM
Hello ,
I have a problem with Harbour and DLL call .

I have this function tha work in xHarbour but not in Harbour ( the problem is CallDll() )

Code (fw): Select all Collapse
Function LlDefineLayout(nH,nHWin,cTitolo,nTipo,cFile)
 Local cFarProc := GetProcAddress( hDLL,"LlDefineLayout")
 Local nErr := CallDll(cFarProc ,nH ,0 ,cTitolo ,nTipo,cFile )
 Return nErr


I try with DLL call of fivewin but dosn't works
Code (fw): Select all Collapse
#include "FiveWin.ch"
#DEFINE LL_OPTION_NEWEXPRESSIONS        0
#DEFINE LL_PROJECT_LABEL                1

Static hDll 

Function Main()
Local oWin

DEFINE WINDOW oWin TITLE "Stampa " FROM 1,1 to 5,5
  Label(oWin)

ACTIVATE WINDOW oWin

return .T.

Function Label(oWin)
 //::nWin      := oWin:hWnd
 LOcal nHandle,nError
 hDll := LoadLibrary("cm32lx.dll" )
 
 if hDll == 0
    MsgInfo( "Non trovo cm32lx.dll" )
    Return nil 
 endif 
 

  nHandle :=  LlJobOpen(1)   // OK 
  
  nError := LlSetOption(nHandle, LL_OPTION_NEWEXPRESSIONS, 1 )   // OK
     
  nError := LlDefineLayout(nHandle , oWin:hWnd , "Title" , LL_PROJECT_LABEL,"Test" )  // ERROR 
  
  Msginfo(nError)
  
  LlJobClose( nHandle )
  FreeLibrary( hDll )   
  
  oWin:End()
Return NIL


//-------------------------------------------------------------------------------------------
DLL32 FUNCTION LlJobOpen( nLanguage AS _INT ) AS _INT ;
      PASCAL FROM "LlJobOpen" ;
      LIB hDll
      
//-------------------------------------------------------------------------------------------
DLL32 FUNCTION LlJobClose( nH AS _INT ) AS _INT ;
      PASCAL FROM "LlJobClose" ;
      LIB hDll
      
      
//-------------------------------------------------------------------------------------------
DLL32 FUNCTION LlSetOption( nH AS _INT ,nMode AS _INT , nValue AS _INT  ) AS _INT ;
      PASCAL FROM "LlSetOption" ;
      LIB hDll

DLL32 FUNCTION LlDefineLayout( nH AS _INT ,nHWin  AS  LONG  ,cTitolo AS  LPSTR ,nTipo AS LONG ,cFile AS  LPSTR ) AS LONG ;
      PASCAL FROM "LlDefineLayout" ;
      LIB hDll

/* THIS WORK WITH XHARBOUR 

Function LlDefineLayout(nH,nHWin,cTitolo,nTipo,cFile)
 Local cFarProc := GetProcAddress( hDLL,"LlDefineLayout")
 Local nErr := CallDll(cFarProc ,nH ,0 ,cTitolo ,nTipo,cFile )
 Return nErr
*/


Regards MAurizio
Posts: 44162
Joined: Thu Oct 06, 2005 05:47 PM
Re: Converting from xHarbour to Harbour
Posted: Mon Sep 22, 2014 11:14 AM

Maurizio,

Please review FWH\include\dll.ch and there you will see that you have to use:

GetProcAdd() and FWCallDLL()

thanks

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 842
Joined: Mon Oct 10, 2005 01:29 PM
Re: Converting from xHarbour to Harbour
Posted: Mon Sep 22, 2014 12:02 PM
Antonio ,
I try
Code (fw): Select all Collapse
DLL32 FUNCTION LlDefineLayout( nH AS LONG ,nHWin  AS  LONG ,cTitolo AS  LPSTR ,nTipo AS LONG ,cFile AS  LPSTR ) AS LONG ;
      PASCAL FROM "LlDefineLayout" ;
      LIB hDll

But dosn't work.

The coll is :
the call is

INT LlDefineLayout:(HKOB hjob , HWND hWnd , LPSTR lpszitle , UINT nObjType , LPSTR lpszObjName)



Maurizio
Posts: 842
Joined: Mon Oct 10, 2005 01:29 PM
Re: Converting from xHarbour to Harbour
Posted: Thu Jun 20, 2019 10:40 AM

Hello Antonio,
do you have time to return to this problem?

Maurizio

Posts: 44162
Joined: Thu Oct 06, 2005 05:47 PM
Re: Converting from xHarbour to Harbour
Posted: Thu Jun 20, 2019 03:13 PM

Maurizio,

Please try:

DLL FUNCTION LlDefineLayout ...

instead of:

DLL32 FUNCTION LlDefineLayout ...

If it does not work, then please send me the DLL (wetransfer website) and your PRG example

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 842
Joined: Mon Oct 10, 2005 01:29 PM
Re: Converting from xHarbour to Harbour
Posted: Thu Jun 20, 2019 04:49 PM

Thanks Antonio
I send an email

Maurizio

Continue the discussion