Clipper On Line • Ver Tópico - Dicas pra entender/alterar comportamento de LIBs

Dicas pra entender/alterar comportamento de LIBs

Aqui você poderá oferecer suas Contribuições, Dicas e Tutoriais (Texto ou Vídeo) que sejam de interesse de todos.

Moderador: Moderadores

 

Dicas pra entender/alterar comportamento de LIBs

Mensagempor JoséQuintas » 30 Nov 2020 14:20

Tem algumas coisas que a gente acaba esquecendo, até mesmo por nunca ter usado.

HB_GTSYS - este fonte é procurado pra definir a GT default

ANNOUNCE HB_GTSYS - este comando é para que a prioridade ao procurar HB_GTSYS seja no fonte que contém isso.
As LIBs GUI costumam ter isso pra definir GT_GUI como default
Se colocar nos "seus" fontes, seu fonte passa a definir a lib default
Precisa atenção nisso se quiser, por exemplo, misturar GT com uma LIB GUI, porque se entra a da LIB GUI, a outra fica de fora.
Nesse caso trata-se apenas de uma GT pra usar como default, geralmente acompanhada por REQUEST HB_GT_xxx_DEFAULT
É isso que atrapalha usar outra GT misturada com a lib GUI.
Basta ajustar, entendendo como isso funciona, e tá tudo resolvido.

INIT PROCEDURE
INIT FUNCTION
Nunca usei isso, mas são rotinas obrigatoriamente executadas ao iniciar o EXE.
As LIBs GUI tem isso, pra iniciar certas coisas internas da LIB.
Na thread principal elas entram automático, mas em outras threads precisa chamar "manualmente".
Em HWGUI e HMG isso entra automático na thread principal, mas numa nova thread não, por isso acaba gerando erro.
Sem problemas, é só chamar novamente ao abrir outra thread, se precisar.
Também pra entender como uma LIB funciona é bom lembrar disso, porque poderia esconder o ponto de partida de tudo.

De um modo geral é disso que lembro no momento.
São coisas simples, mas podem fazer muita diferença.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18013
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Dicas pra entender/alterar comportamento de LIBs

Mensagempor JoséQuintas » 30 Nov 2020 15:02

Faltou dizer:
INIT PROCEDURE e INIT FUNCTION, podem existir várias.
Todas serão executadas, sem ordem pré-definida, antes de executar Main.

E tem EXIT PROCEDURE, EXIT FUNCTION, que vão ser executadas na saída do EXE.

Num exemplo fictício, não é bom fazer isso, poderia carregar DLLs no início, e descarregar no final.
Melhor não fazer isso, senão pode ficar sem poder rodar o programa se faltar alguma DLL.
Foi apenas um exemplo.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18013
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes




Retornar para Contribuições, Dicas e Tutoriais

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 18 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro