Página 1 de 2
Harbour Linux & Putty
Enviado: 05 Nov 2018 01:07
por JoséQuintas
Alguém usando Harbour no Linux através de Putty?
Fica limitado mesmo?
É que no terminal server do Windows, abro multithread e janelas à vontade, mas tentei no Linux e não foi.
Mas só usando através de putty.
Não testei isso no Microsoft Linux ainda... rs
Harbour Linux & Putty
Enviado: 05 Nov 2018 13:20
por Vlademiro
Quando eu uso no windows eu uso o
https://www.bitvise.com/ssh-client (quem usa windows vai se sentir a vontade com a telinha que ele gera).
Com relação ao multithread eu uso sem problemas um servidor web feito em harbour que usa esse recurso. Mas não tem relação com o cliente de ssh.
Harbour Linux & Putty
Enviado: 05 Nov 2018 14:41
por Itamar M. Lins Jr.
Ola!
abro multithread e janelas à vontade,
Isso ai é o forte do Linux. Tarefas múltiplas. Por isso é o OS mais utilizado do mundo.
Depende do que vc está se referindo. NetIO roda MT, LetoDbf só roda com MT ligado(do Harbour), e tantos outros programas do Harbour.
Alias quase tudo do LINUX é compilado em MT. Sem MT nada funciona, Apache/KDE/Gnome...
Se não tiver MT, teríamos uma sessão do Apache para cada requisição. Esse forum aqui mesmo em PHP, está usando MT etc...
Multi tarefa, é quando o programa uma única vez chamado, responde por várias solicitações de dentro dele mesmo, sem chamar outra estância dele.
Não é o caso do command.com/CMD.EXE do Windows, que chamamos um dentro do outro.
Essas janelas, são do seu sistema ou janelas do windows ?
Saudações,
Itamar M. Lins Jr.
Harbour Linux & Putty
Enviado: 05 Nov 2018 16:23
por JoséQuintas
A grande vantagem que vejo em GTWVG, ou LIB multithread é justamente a opção de abrir uma janela pra cada thread.
Código: Selecionar todos
hb_ThreadStart( { || teste() } )
hb_ThreadStart( { || teste() } )
hb_ThreadStart( { || teste() } )
hb_ThreadStart( { || teste() } )
Inkey(0)
Isso poderia abrir 4 janelas no Windows, ou no terminal server do Windows.
Já no Linux, mantém janela única.
Harbour Linux & Putty
Enviado: 05 Nov 2018 16:30
por Itamar M. Lins Jr.
Ola!
GTWVG no Linux ?
De qual gerenciador ele esta pegando os comandos do Windows ? Wine ?
Saudações,
Itamar M. Lins Jr.
Harbour Linux & Putty
Enviado: 05 Nov 2018 16:30
por JoséQuintas
Código: Selecionar todos
#include "inkey.ch"
#include "hbgtinfo.ch"
PROCEDURE Main
hb_ThreadStart( { || teste() } )
hb_ThreadStart( { || teste() } )
hb_ThreadStart( { || teste() } )
hb_ThreadStart( { || teste() } )
hb_ThreadStart( { || teste() } )
Inkey(1000)
RETURN
STATIC FUNCTION Teste()
hb_gtReload( "WVG" )
SetMode( 20, 30 )
SetColor( "W/B,N/W,,,W/B" )
CLS
@ 1, 0 SAY "X:" + iif( hb_GtInfo( HB_GTI_ISMULTIWIN ), "Sim", "Nao" )
@ 2, 0 SAY "X:" + hb_GtInfo( HB_GTI_VERSION )
Inkey(0)
RETURN NIL
Em aplicativo remoto o resultado é o mesmo, várias janelas remotas.
Isso em Windows.
Harbour Linux & Putty
Enviado: 05 Nov 2018 17:06
por JoséQuintas
Tive que trocar o servidor pra W7 Ultimate pra fazer o teste:
Essa é a tela normal do computador com W10.
Abri o aplicativo remoto teste.
O aplicativo abriu as janelas em multithread.
É como se fossem 5 aplicativos remotos, mas na prática é um só usando multithread.
No servidor, W7 Ultimate, e aplicativo configurado pra remoto.
Harbour Linux & Putty
Enviado: 05 Nov 2018 17:08
por JoséQuintas
Então... queria fazer o mesmo no Linux.
Harbour Linux & Putty
Enviado: 05 Nov 2018 17:10
por Itamar M. Lins Jr.
Ola!
O Linux, não tem os comandos da GTWVG.
Precisa abrir o WINE para rodar esse seu programa em GTWVG.
No Linux tem GTWVT, GTQT. Inclusive essa GTQT foi o Przmek que fez. Tem que instalar o QT enorme...
WVG vai chamar as funções da API do windows... WAPI_...Parte gráfica do windows. No linux isso é o calcanhar de Aquiles! Tem Gnome em GTK, KDE, etc...
Ai vc precisa usar o Wine.
Saudações,
Itamar M. Lins Jr.
Harbour Linux & Putty
Enviado: 05 Nov 2018 17:31
por JoséQuintas
Ok, a intenção no Linux NÃO é usar GTWVG, é apenas multithread.
Mas aí vai depender de alguma coisa adicional, é isso que não sei.
Harbour Linux & Putty
Enviado: 05 Nov 2018 18:20
por Itamar M. Lins Jr.
Ola!
No Harbour, exemplo é que não falta para usar MT.
Não tem nada adicional.
Se usar MT sempre será do Harbour neste caso.
Agora vc vai testar isso usando uma das GT's do Harbour para Linux. PushButtons, Radio Group, Buttons, etc... Isso é o desenho das suas telas com WVG.
Ou usar a Hwgui se quer gráfico nativo VIA, GTK.
A GTWVG é para Windows.
Basta olha o NetIO ai que vc já usa e não usa GT nenhuma
Código: Selecionar todos
#include "error.ch"
FUNCTION netio_MTServer( nPort, cIfAddr, cRootDir, xRPC, ;
cPasswd, nCompressLevel, nStrategy, ;
sSrvFunc )
LOCAL pListenSocket, lRPC
LOCAL oError
IF sSrvFunc == NIL
sSrvFunc := @netio_Server()
ENDIF
IF hb_mtvm()
SWITCH ValType( xRPC )
CASE "S"
CASE "H"
lRPC := .T.
EXIT
CASE "L"
lRPC := xRPC
EXIT
OTHERWISE
xRPC := NIL
ENDSWITCH
pListenSocket := netio_Listen( nPort, cIfAddr, cRootDir, lRPC )
IF ! Empty( pListenSocket )
hb_threadDetach( hb_threadStart( @netio_srvloop(), pListenSocket, ;
xRPC, sSrvFunc, ;
cPasswd, nCompressLevel, nStrategy ) )
ENDIF
ELSE
oError := ErrorNew()
oError:severity := ES_ERROR
oError:genCode := EG_UNSUPPORTED
oError:subSystem := "HBNETIO"
oError:subCode := 0
oError:description := hb_langErrMsg( EG_UNSUPPORTED )
oError:canRetry := .F.
oError:canDefault := .F.
oError:fileName := ""
oError:osCode := 0
Eval( ErrorBlock(), oError )
ENDIF
RETURN pListenSocket
Saudações,
Itamar M. Lins Jr.
Harbour Linux & Putty
Enviado: 05 Nov 2018 18:53
por Itamar M. Lins Jr.
Ola!
Da uma olhada ai na pasta tests.
Acredito que tem o que vc está procurando.
Fiz testes aqui no ubuntu 18
Código: Selecionar todos
sudo -s
apt install xorg-devel
hbmk2 wvtwin.prg -gtxwc
//e tem mais esse;
hbmk2 wvtext.prg
Saudações,
Itamar M. Lins Jr.
Harbour Linux & Putty
Enviado: 05 Nov 2018 19:06
por Itamar M. Lins Jr.
Ola!
Compilei seu exemplo com o X11 -> gtxwc do harbour.
Saudações,
Itamar M. Lins Jr.
Harbour Linux & Putty
Enviado: 05 Nov 2018 19:54
por JoséQuintas
Quase deu... não tem o x11
Só deu pra instalar a LIB:
sudo apt-get install libx11-dev
compilou, mas deu erro na execução
Unrecoverable error 10001: Could not connect to X server.
Called from SCROLL(0)
Called from TESTE(20)
Called from (b)MAIN(6)
O Ubuntu do Microsoft Linux não aceitou o comando de instalar xorg-devel
root@josejpa:/mnt/d/temp# apt install xorg-devel
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package xorg-devel
só a título de curiosidade:
Os pacotes vém do site do Ubuntu, mas xorg-devel não veio.
Harbour Linux & Putty
Enviado: 05 Nov 2018 20:14
por Itamar M. Lins Jr.
Ola!
Unrecoverable error 10001: Could not connect to X server.
O X11 é o servidor (daemon) gráfico do Ubuntu 18
Código: Selecionar todos
>ps -aux
itamar 1130 0.0 0.0 212380 1824 tty1 Ssl+ 13:12 0:00 /usr/lib/gdm3/gdm-x-session --run-script env GNOME_SHELL_SESSION_MODE=ubuntu
itamar 1134 5.9 2.7 414788 50888 tty1 Rl+ 13:12 21:14 /usr/lib/xorg/Xorg vt1 -displayfd 3 -auth /run/user/1000/gdm/Xauthority -back
itamar 1149 0.0 0.1 54336 2796 ? Ss 13:12 0:02 /usr/bin/dbus-daemon --session --address=systemd: --nofork --nopidfile --syst
Ele tem que está rodando senão não abre tela gráfica nenhuma.
Saudações,
Itamar M. Lins Jr.