Página 2 de 2
Atualização Harbour 16-02-2024
Enviado: 17 Fev 2024 10:15
por sygecom
O meu problema está justamente usando hbcurl+openssl+postgresql
Da conflito nas DLL, se eu tirar o uso da hbcurl tudo funciona bem.
Já tentei com e sem as linhas abaixo, já gerei tudo do zero. Não tenho problemas para compilar o harbour e nem compilar os exemplos, mas é erro de execução.
SET HB_STATIC_CURL=yes
SET HB_STATIC_OPENSSL=yes
Erro apresentado.

Atualização Harbour 16-02-2024
Enviado: 17 Fev 2024 10:18
por sygecom
Tem algum conflito no harbour com versões de: Openssl, Postgresql e Curl;
Atualização Harbour 16-02-2024
Enviado: 17 Fev 2024 10:45
por sygecom
Itamar M. Lins Jr. escreveu:
Compilando as duas sem nenhum problema(aparente)
Inclusive gerando a estática.
Ficou assim a configuração.
Código: Selecionar todos
C:\dev\hb32-code\contrib\hbssl>set hb
HB_STATIC_CURL=yes
HB_STATIC_OPENSSL=yes
HB_WITH_CURL=c:\msys64\mingw64\include
HB_WITH_OPENSSL=c:\msys64\mingw64\include
HB_WITH_PGSQL=C:\Program Files\PostgreSQL\16\include
Saudações,
Itamar M. Lins Jr.
Itamar,
Compilar as lib é bem fácil mesmo, zero problemas.
O problema está em você usar essas 3 no mesmo projeto, e não adianta apenas linkar elas, tem que ter chamadas de uso, para que elas seja realmente usadas, ai que começa os problemas.
Atualização Harbour 16-02-2024
Enviado: 17 Fev 2024 11:14
por Itamar M. Lins Jr.
Olá!
Eu uso 2 a PG e a SSL.
A Curl eu testei faz muito tempo, agora essas duas ai aqui roda sem problema.
Eu descobri as DLL que o aplicativo exige, quando fui instalar em outras maquinas. Ai pediu algumas DLLs.
Código: Selecionar todos
Pasta de C:\fontes\DLLS
16/02/2024 10:36 <DIR> .
16/02/2024 10:36 <DIR> ..
31/05/2023 16:51 4.901.775 libcrypto-3-x64.dll
19/02/2023 09:30 1.117.178 libiconv-2.dll
07/06/2023 00:20 475.769 libintl-9.dll
07/06/2023 00:19 312.832 libpq.dll
31/05/2023 16:51 658.346 libssl-3-x64.dll
31/05/2023 16:51 709.798 libssl-3.dll
29/05/2023 07:09 60.356 libwinpthread-1.dll
23/08/2020 23:19 746.496 rmchart.dll
8 arquivo(s) 8.982.550 bytes
2 pasta(s) 87.300.022.272 bytes disponíveis
C:\fontes\DLLS>
A rmchart.dll não precisa, só usa quando chamo em 2 ou 3 graficos antigos(passei a usar google chart)
Vou simular o erro aqui, chamar o EXE sem essas DLLs
Saudações,
Itamar M. Lins Jr.
Atualização Harbour 16-02-2024
Enviado: 17 Fev 2024 11:20
por Itamar M. Lins Jr.
Olá!
, tem que ter chamadas de uso,
Ué, e tem, vc não coloca isso no PRG ?
Código: Selecionar todos
//No MAIN
#require "rddsql"
#require "sddpg"
#require "hbssl"
#require "hbtip"
REQUEST DBFCDX, DBFFPT, DBFDBT, LETO, SQLMIX, SDDODBC, SDDPG
...
IF !hb_mtvm()
Hwg_MsgStop("Ative o suporte multithread")
RETURN .F.
ENDIF
...
//em outro PRG
cRdd := RDDSETDEFAULT( "SQLMIX" )
nCon := rddInfo( RDDI_CONNECT, { "POSTGRESQL","127.0.0.1","postgres","XYZ","db_XYZ","5432"})
IF nCon == 0
hwg_MsgInfo("Não conectou no Postgres: " + Str(nCon) )
RDDSETDEFAULT( cRdd )
RETURN .T.
ELSE
hwg_MsgInfo("Conectou no Postgres: " + Str(nCon) )
ENDIF
Saudações,
Itamar M. Lins Jr.
Atualização Harbour 16-02-2024
Enviado: 17 Fev 2024 11:26
por Itamar M. Lins Jr.
Olá!
No email para usar gmail
Código: Selecionar todos
#require "hbssl"
#require "hbtip"
REQUEST __HBEXTERN__HBSSL__
...
lRet := tip_MailSend( ;
cHost, ;
nPort, ; //iif( lSTARTTLS, 587, 465 ), ;
cFrom, ;
cTo, ;
xCC /* CC */, ;
{} /* BCC */, ;
cBody , ;
cSubJect , ;
aArqui /* attachment */, ;
cFrom, ;
cPassword, ;
"", ;
NIL /* nPriority */, ;
NIL /* lRead */, ;
.T. /* lTrace */, ;
.F., /*lPopAuth */ ;
NIL /* lNoAuth */, ;
NIL /* nTimeOut */, ;
NIL /* cReplyTo */, ;
nPort == 465) //! lSTARTTLS )
If lRet
hwg_Msginfo("Email enviado."+hb_eol()+"Assunto: "+cSubject+hb_eol()+"Endereço: "+cTo)
Else
hwg_Msgexclamation("Falha enviando email.")
EndIf
RETURN lRet
O código ainda tem redundância, pq já tem lá no MAIN essas duas primeiras.
Saudações,
Itamar M. Lins Jr.
Atualização Harbour 16-02-2024
Enviado: 17 Fev 2024 11:39
por sygecom
Realmente o problema só acontece quando envolve a hbcurl, PG e SSL rodam de boa.
Acho que o problema é que o PG usa HBCURL e, a HBCURL usa SSL e, pg também usa SSL.
Estou isolando todos em vários exemplos de conjuntos e, tudo com versões diferentes, em breve vou descobrir aonde isso está travando.
Atualização Harbour 16-02-2024
Enviado: 17 Fev 2024 11:40
por sygecom
Fiquei em uma duvida agora.
A ultima versão do POSTGRESQL para 32bits foi a versão 10 e, da em diante para windows só tem versão 64bits.
Será que posso pegar a DLL e pasta PG16\INCLUDE para usar com harbour 32bits e aplicativos gerado em 32bits ?
Atualização Harbour 16-02-2024
Enviado: 17 Fev 2024 13:03
por Itamar M. Lins Jr.
Olá!
Como a chamada está na principal, não abre o exe.

- Captura de tela 2024-02-17 133035.png (6.39 KiB) Exibido 1833 vezes
Acredito que colocando ela lá na hora de usar no PRG, possa abrir o EXE sem reclamar dessas DLLs
Agora outra coisa que não entendo é pq usa DLL se manda LINKAR ESTÁTICO ?
Lembrando que tem suas LIBs a ESTÁTICA tem um "S" no final.
Já vi explicação a respeito dessa LINKAGEM ESTÁTICA que é PARCIAL.
Saudações,
Itamar M. Lins Jr.
Atualização Harbour 16-02-2024
Enviado: 17 Fev 2024 13:13
por Itamar M. Lins Jr.
Olá!
Repare que o sistema vai reclamando das DLLs que estão faltando, uma CHAMA outra e mais outra... Até consegui subir(rodar) o .EXE
Saudações,
Itamar M. Lins Jr.
Atualização Harbour 16-02-2024
Enviado: 17 Fev 2024 13:19
por sygecom
Essas DLL do pg e da curl ele reclama, mas chega em um momento que reclamada de uma DLL NULL ou seja sem nome algum
Atualização Harbour 16-02-2024
Enviado: 17 Fev 2024 14:15
por sygecom
Consegui em um exemplo insolar mais ainda o erro.
Retirando a openssl do sistema o conflito fica apenas com Postgresql e curl.
Conforme imagem abaixo, ambas tem a mesma versão só que uma é DEV e elas. tem tamanhos diferentes, por que não sei, mas a do PG16 é o que vem com ele e, a outra é versão oficial do site da CURL.
Vou seguir procurando alternativas para resolver isso.
Atualização Harbour 16-02-2024
Enviado: 17 Fev 2024 15:25
por sygecom
Vocês não vão acreditar, mas o fato de mudar a ordem das lib na compilação resolveu meu problema. A hbcurl deve vir antes da hbpgsql, vou seguir em frente com os próximos desafios. Que se chama HWGUI kkkkkk, mas isso é assunto pra outro tópico.