Page 1 of 1

How to use HBMK2

Posted: Wed May 27, 2020 1:50 pm
by vilian
Hi Guys,

I want to try HBMK2. Is there any link or doc that explain how to use it ?
My main Project is very big. I have almost 500 prgs divided in 6 directories. I need generate EXE from one diretory and HRB files from the other.
Could you help me ?

Re: How to use HBMK2

Posted: Wed May 27, 2020 3:20 pm
by Antonio Linares

Re: How to use HBMK2

Posted: Wed May 27, 2020 4:45 pm
by vilian
Thank You Antônio,
I already read the contente of this link, But I didn't understand how to use it. As I saw before, I have almost 500 prgs divided in 6 directories. I need generate the EXE from files of the first diretory and HRB files from the others.
I also have some .RES files to join and a private .LIB. to link. Could you help me ?

Re: How to use HBMK2

Posted: Wed May 27, 2020 5:39 pm
by Antonio Linares
Vilian,

Create six different hbp files and from the main one, include the name of the others

So the main one will launch the creation of the others

Thats how we do it with mod_harbour. There is a main modharbour.hbp and another mod.hbp.
modharbour.hbp launches mod.hbp before doing its own work.

Re: How to use HBMK2

Posted: Wed May 27, 2020 5:57 pm
by vilian
Could you show me a sample/structure of hbp file ?
How can I include .RES files in the Project ?

Re: How to use HBMK2

Posted: Wed May 27, 2020 8:24 pm
by ricbarraes
I'm working with Vilian in this project.

We are kinda struggling to use hbmk2.

There's some situations that we can't work around...

first, our code references some procedures inside DLL's and we are trying to link the DLL in our .hbp using -depimplibs, but we are getting this message:

hbmk2[SGV90]: Warning: Missing dependency: ter21

this is our .hbp

Code: Select all

#
# $Id: sample.hbp $
#

#PRGs
E:\TEC2000\SGV90VS\PRG\SGV.PRG      
E:\TEC2000\SGV90VS\PRG\SIF130.PRG   
E:\TEC2000\SGV90VS\PRG\SIF160.PRG 
E:\TEC2000\SGV90VS\PRG\SIF211.PRG   
E:\TEC2000\SGV90VS\PRG\SIF221.PRG   
E:\TEC2000\SGV90VS\PRG\SIF241.PRG   
E:\TEC2000\SGV90VS\PRG\SIF273.PRG   
E:\TEC2000\SGV90VS\PRG\SIF280.PRG   
E:\TEC2000\SGV90VS\PRG\DANFE.PRG    
E:\TEC2000\SGV90VS\PRG\FUNCUSR.PRG  
E:\TEC2000\SGV90VS\PRG\FUNCCPR.PRG  
E:\TEC2000\SGV90VS\PRG\FUNCOES.PRG  
E:\TEC2000\SGV90VS\PRG\FUNCUSR.PRG  
E:\TEC2000\SGV90VS\PRG\FUNCFTP.PRG  
E:\TEC2000\SGV90VS\PRG\FUNCSIG.PRG  
E:\TEC2000\SGV90VS\PRG\GERACPR.PRG  
E:\TEC2000\SGV90VS\PRG\DANFE.PRG    
E:\TEC2000\SGV90VS\PRG\VONFE2G.PRG  
E:\TEC2000\SGV90VS\PRG\VONFEUT.PRG  
E:\TEC2000\SGV90VS\PRG\VONFSEUT.PRG 
E:\TEC2000\SGV90VS\PRG\TPRODUTO.PRG 
E:\TEC2000\SGV90VS\PRG\VFATXT32.PRG 


-Ic:\FWH19\include

-Lc:\FWH19\lib
-lvfawin40
-lTwBrw32h                                            
-lBarLib32                                            
-lFileXls                                             
-lLibMySql
-lFiveH
-lFiveHC

-Lc:\Harbour19\lib
-lhbwin
-lgtgui
-lhbrtl
-lhbvmmt
-lhblang
-lhbmacro
-lhbrdd
-lrddntx
-lrddcdx
-lrddfpt
-lhbsix
-lhbcommon
-lhbpp
-lhbcpage
-lhbcplr
-lhbct
-lhbpcre
-lxhb
-lhbziparc
-lhbmzip
-lhbzlib
-lminizip
-lhbusrrdd
-lhbtip

-Lc:\Bcc73\lib
-lcw32mt
-luuid 
-limport32
-lws2_32

-Lc:\Bcc73\lib\psdk
-lodbc32
-lnddeapi
-liphlpapi 
-lmsimg32
-lpsapi
-lrasapi32
-lgdiplus
-lshell32

-depimplibs=ter21:E:\TEC2000\SGV90VS\ter21.dll
we don't really know what this "dependency" is and what we are supposed to do (we already looked in some documentations availabe in github and medium.com, but we didn't find anything about that)

And the second situation is about the .RES file (which contain some resources) that we need to link to our .EXE.
We used to do that with a .RMK file and using the make.exe inside bcc\bin.

Re: How to use HBMK2

Posted: Thu May 28, 2020 5:18 am
by Antonio Linares
To manage .rc files, simply include the rc filename, in example:
https://github.com/harbour/core/blob/ma ... ts/dlg.hbp

Re: How to use HBMK2

Posted: Thu May 28, 2020 10:53 am
by vilian
Thank you Antonio,

Now there is only one question. I have 2 DLL (Image2pdf e TER21) from third, that i use with our program. When we try generate the exe file, we receive messages about functions of these DLL missing. How could us solve this?

Re: How to use HBMK2

Posted: Thu May 28, 2020 11:27 am
by Antonio Linares
How do you access the DLLs functions ?

1. Using an import library and using some wrappers functions ? (static linking)

2. Using DLL FUNCTION ... commands ? (dynamic linking)

Re: How to use HBMK2

Posted: Thu May 28, 2020 11:38 am
by vilian
please forget this. it is a mistake mine.

Re: How to use HBMK2

Posted: Thu May 28, 2020 12:20 pm
by ricbarraes
Thanks Antonio, for all the replies!

about the DLL, we figured out what was wrong.

Just one more question (for now :D )...

after the build using hbmk2, our exe started to show a dialog right after initialization. Do you what is happening? could it be a missing parameter?

Image


thanks for yout time!

Re: How to use HBMK2

Posted: Thu May 28, 2020 12:45 pm
by ricbarraes
Never mind, Antonio!

We figured out! -gtgui was missing, now everything seems fine!

Thank you again!

Re: How to use HBMK2

Posted: Thu May 28, 2020 5:10 pm
by Antonio Linares
very good! :-)