xHGTK (Alguem esta testando?)

Outras bibliotecas visuais e IDEs para Harbour/xHarbour (xHGTK/HbWxW/GtWvT/GtWvW/WvWtools.etc)

Moderador: Moderadores

hrodrigom
Usuário Nível 2
Usuário Nível 2
Mensagens: 63
Registrado em: 10 Nov 2007 08:04
Localização: Santa Rita - Paraguay

xHGTK (Alguem esta testando?)

Mensagem por hrodrigom »

Boa Tarde,

Algum companheiro já está trabalhando com xHgtk?
Estou tentando compiliar um pequeno exemplo, juntamente com a contrib do postgresql mas está gerando um erro de segmentação quando executo meu teste.

nao preciso ter nada em especial,
basta um exemplo simples

Código: Selecionar todos

function main()
   PRIVATE oServer := TPQServer():New('localhost', 'flaro', 'postgres', 'senha')
return .t.
Nada de especial,
mas no meu script do hbmake ao colocar a linha

Código: Selecionar todos

LFLAGS = -Wl,--noinhibit-exec -static -gtcrs `pkg-config --libs gtk+-2.0 libglade-2.0` -lxhgtk 
dai compila normalmente, so que executa somente até a linha onde faz a conexao com o servidor postgresql..

Alguma sujestao?

Será que existe alguma incompatibilidade em alguns include ou algo assim?
função duplicada, acredito que nao.. mas como meu conhecimento é......

Obs:
Ubuntu 7.04
xHarbour Compiler build 0.99.70
gcc (GCC) 4.1.2 (Ubuntu 4.1.2-0ubuntu4)
gtk-config --version
1.2.10


Outra Obs:
Se nao usar postgresql, a xhgtk funciona bem..[/code]
hrodrigom
Usuário Nível 2
Usuário Nível 2
Mensagens: 63
Registrado em: 10 Nov 2007 08:04
Localização: Santa Rita - Paraguay

Mensagem por hrodrigom »

Consegui isolar quais sao as libs que estao gerando o conflito.
Ao executar no console

Código: Selecionar todos

# pkg-config --libs gtk+-2.0 libglade-2.0
obtem-se o resultado

Código: Selecionar todos

-lglade-2.0 -lgtk-x11-2.0 -lxml2 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lm -lpangocairo-1.0 -lfontconfig -lXext -lXrender -lXinerama -lXi -lXrandr -lXcursor -lXfixes -lpango-1.0 -lcairo -lX11 -lgobject-2.0 -lgmodule-2.0 -ldl -lglib-2.0 
Este resultado coloco no script do hbmake, e vou retirando lib por lib até encontrar o conflito,
sao estas as libs

Código: Selecionar todos

-lxml2 -lcairo
Mas mesmo assim, consegui abrir uma pequena janelinha GTK por cima do meu sistema.
nao sei se me farão falta no futuro estas libs, provavelmente sim.

Aguardo qualquer sugestao.

Gracias
rodrmigu
Usuário Nível 3
Usuário Nível 3
Mensagens: 150
Registrado em: 27 Nov 2007 15:13
Localização: Indaiatuba SP

Mensagem por rodrmigu »

Olá Rodrigo,

Acabei de testar no linux e tá funcionando normalmente. Segue o programa que usei para testar:

#include "xhgtk.ch"

Function Main ()
Local pWindow
Local pButton

gtk_init()

pWindow := gtk_window_new( GTK_WINDOW_TOPLEVEL )
gtk_widget_set_size_request( pWindow, 160, 120 )
gtk_window_set_title( pWindow, "Postgres Test" )
gtk_container_set_border_width( pWindow, 1 )
gtk_window_set_position( pWindow, GTK_WIN_POS_CENTER )

pButton := gtk_button_new_with_label( "Connect" )
gtk_container_add( pWindow, pButton )

gtk_signal_connect( pWindow, "destroy", {|| gtk_main_quit() } )
gtk_signal_connect( pButton, "clicked", {|| Teste() } )

gtk_widget_show_all( pWindow )

gtk_main()
Return Nil


Procedure Teste()
Local oServer

oServer := TPQServer():New('192.168.0.104', 'teste', 'sysadm', 'dummy')

if oServer:NetErr()
MsgStop(oServer:Error())
end

oServer:Destroy()
Return nil

[]'s
Rodrigo
rodrmigu
Usuário Nível 3
Usuário Nível 3
Mensagens: 150
Registrado em: 27 Nov 2007 15:13
Localização: Indaiatuba SP

Mensagem por rodrmigu »

Rodrigo,

Eu acho que tenho mais ou menos uma idéia do que seja. O xHarbour nao lida direito com variáveis PRIVATE com a gtk. Entao tente trocar por LOCAL.

[]'s
Rodrigo
ederxc
Usuário Nível 4
Usuário Nível 4
Mensagens: 619
Registrado em: 15 Set 2006 08:40
Localização: Pedreira -SP-

Mensagem por ederxc »

rodrmigu escreveu:Rodrigo,

Eu acho que tenho mais ou menos uma idéia do que seja. O xHarbour nao lida direito com variáveis PRIVATE com a gtk. Entao tente trocar por LOCAL.

[]'s
Rodrigo
Cuma? Essa eu não sabia , até agora não tive problema com PRIVATE

;)
C:\Xharbour\Xdev\Fw\VSX
hrodrigom
Usuário Nível 2
Usuário Nível 2
Mensagens: 63
Registrado em: 10 Nov 2007 08:04
Localização: Santa Rita - Paraguay

Mensagem por hrodrigom »

Amigo, ja testei tudo isso que vc falou, e nada..
Eu preciso que esse oServer seja publico ou private..
Eu faço uma unica conexao com o servidor quando abro o sistema,
mas de qualquer forma nao deu certo..

Mas tranquilo, estou conseguindo testar a xHgtk sem aquelas duas libs xml2 cairo, assim que me fazerem falta, eu investigo com mais calma.. quem sabe até lá eu ja tenha atualizado meu xharbour.. q na verdade está com um bug e nao está me sobrando tempo de contornar isto..

Mesmo assim, obrigado.

Se eu descobrir o que está acontecendo realmente, eu reporto aqui..
Saludos
rodrmigu
Usuário Nível 3
Usuário Nível 3
Mensagens: 150
Registrado em: 27 Nov 2007 15:13
Localização: Indaiatuba SP

Mensagem por rodrmigu »

ederxc escreveu: Cuma? Essa eu não sabia , até agora não tive problema com PRIVATE
Pois é, pra mim também foi surpresa, mas o lance da gtk é que sempre que se abre uma janela, não tem um ponto de loop no final dela fazendo a função em xharbour fazer o RETURN, com isso as referências para as variáveis na stack do xharbour se perdem (Descobri isso depois de sofrer bastante).

Enfim, vc pode usar PUBLIC ou GLOBAL neste caso.

[]'s
Rodrigo
Responder