Novo teste de mistura.
Sei lá porque, não deu o resultado que eu esperava, mas depois tento ver porque.
É coisa simples......sei lá....
Tem um fonte de cada lib.
isso não mistura nada.
Vai compilar um fonte, com uma lib gui, e gerar um arquivo de lib
Vai fazer isso 4 vezes, pra 4 libs.
Não dá pra compilar junto, num mesmo projeto, porque as libs minigui tem CH com mesmo nome, se compilar junto dá muito erro.
Código: Selecionar todos
call \tools\util\c.bat /cmd \github\dlgauto\source\lib_hwgui.prg hwgui.hbc -hblib
call \tools\util\c.bat /cmd \github\dlgauto\source\lib_hmg3.prg hmg3.hbc -hblib
call \tools\util\c.bat /cmd \github\dlgauto\source\lib_hmge.prg hmge.hbc -hblib
call \tools\util\c.bat /cmd \github\dlgauto\source\lib_oohg.prg oohg.hbc -hblib
Ok, nada demais, gerei 4 libs.
por exemplo, um fonte hwgui, compilado com hwgui, que gerou a lib_hwgui.a, que contém o fonte compilado.
qualquer um que use hwgui faz isso.
Não fiquei a fim de criar 4 hbps pra isso, nem de ficar digitando, então foi por bat.
Criei um módulo principal, GTWVG lógico.
Código: Selecionar todos
THREAD STATIC oGUI
FUNCTION GUI()
RETURN oGUI
PROCEDURE Main
LOCAL nOpc := 1
SetMode(33,100)
CLS
DO WHILE .T.
@ 1, 0 PROMPT "(H)HWGUI"
@ 2, 0 PROMPT "(3)HMG3"
@ 3, 0 PROMPT "(E)HMGE"
@ 4, 0 PROMPT "(O)OOHG"
MENU TO nOpc
DO CASE
CASE LastKey() == 27; EXIT
CASE nOpc == 1; hb_ThreadStart( { || Test2( "DLGAUTOHWGUI" ) } )
CASE nOpc == 2; hb_ThreadStart( { || Test2( "DLGAUTOHMG3" ) } )
CASE nOpc == 3; hb_ThreadStart( { || Test2( "DLGAUTOHMGE" ) } )
CASE nOpc == 4; hb_ThreadStart( { || Test2( "DLGAUTOOOHG" ) } )
ENDCASE
ENDDO
RETURN
FUNCTION Test2( xFrmName )
hb_gtReload("WVG")
DO CASE
//CASE xFrmName == "DLGAUTOFIVEWIN" ; oGui := FIVEWINClass():New()
CASE xFrmName == "DLGAUTOHWGUI" ; oGUI := HWGUIClass():New()
//CASE xFrmName == "DLGAUTOHMGE" ; oGUI := HMGECLASS():New()
CASE xFrmName == "DLGAUTOHMG3" ; oGUI := HMG3Class():New()
CASE xFrmName == "DLGAUTOOOHG" ; oGUI := OOHGClass():New()
ENDCASE
Do( "DLGAUTO" )
//PostQuitMessage(0)
RETURN Nil
FUNCTION HB_GTSYS
REQUEST HB_GT_WVG_DEFAULT
RETURN Nil
Ok ? o módulo principal chama DLGAUTO.
Mas conforme a opção escolhida, cria uma classe diferente.
O módulo principal força GTWVG como default.
Nada demais também.
Aí vém o projeto master, esse talvez complique um pouco, talvez não.
Código: Selecionar todos
testmix.prg
-DDLGAUTO_AS_LIB
-Id:\github\dlgauto\source
d:\github\dlgauto\source\frm*.prg
d:\github\dlgauto\source\test.prg
d:\github\dlgauto\source\test_loadsetup.prg
d:\github\dlgauto\source\test_setup.prg
hbct.hbc
-mt
-L.
-llib_hwgui
#-llib_hmge
-llib_oohg
-llib_hmg3
gtwvg.hbc
hwgui.hbc
#hmge.hbc
oohg.hbc
hmg3.hbc
ele compila normalmente o test.prg, e alguns fontes do dlgauto.
indica os arquivos de lib que foram gerados.
indica também as libs.
um projeto normal, com fontes e libs, o diferente é só misturar libs.
habilito/desabilito dependendo se funciona ou não.
Uia.
Desabilitei o automático, de pegar DBFs da pasta, pra incluir no meu aplicativo real, por isso não aparecem os outros.
Vou precisar alterar pra este projeto.
Abriu GTWVG
Abriu DLGAUTO usando HWGUI
Abriu DLGAUTO usando OOHG
Mas deu erro em HMG3, porque tem função repetida, e HMG3 tentou usar a função da OOHG.
4 LIBs no mesmo EXE, apesar de uma não funcionar.
HMG Extended não funcionou, não sei se a versão 25.02 teve alguma mudança, ou se não era pra funcionar mesmo, por isso bloqueada.
Já testei antes HMGE e HWGUI juntas e funcionavam.