Set device to printer

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Set device to printer

Mensagem por Itamar M. Lins Jr. »

Ola!
O conceito, não é mais DOS (monousuário) nem tem apenas uma impressora na LPTX
Use as ferramentas que o sistema operacional oferece e que já tem na linguagem.
aPrn := WIN_PRINTERLIST() //Retorna array com todas as impressoras disponiveis.
cPrint := win_PrinterGetDefault() //Retorna a impressora padrão.
Criar o arquivo em disco e depois escolher a forma. Se for da maneira antiga use printfileraw()

Código: Selecionar todos

 nRet := Win_PrintFileRaw(cPrint,cArq,cTit)
 if nRet < 1
    cMsg := 'Erro Imprimindo: '
   SWITCH nRet
      CASE -1
         cMsg += "Parâmetro inválido passado" ; EXIT
      CASE -2
         cMsg += "WinAPI OpenPrinter() Falha na chamada"      ; EXIT
      CASE -3
         cMsg += "WinAPI StartDocPrinter() Falha na chamada"  ; EXIT
      CASE -4
         cMsg += "WinAPI StartPagePrinter() Falha na chamada" ; EXIT
      CASE -5
         cMsg += "WinAPI malloc() of memory failed"      ; EXIT
      CASE -6
         cMsg += "Arquivo " + cArq + " não Localizado"   ; EXIT
      //DEFAULT
      //   cMsg += cFile + " PRINTED OK!!!"
      END

     hwg_Msgstop(cMsg)
 EndIf
Return .T.
Se quer enviar o texto p/ impressoras Lasers/jato de tinta.

Código: Selecionar todos

*********************************
Function PrintWinPrn(cArq,cPrint)
*********************************
*
*
Local oPrn, aPrn:=WIN_PRINTERLIST(), n := 0
if empty(aPrn)
   hwg_Msginfo('Não há impressoras instaladas')
   return .f.
endif
If cPrint == Nil
 cPrint := win_PrinterGetDefault()
EndIf

oPrn := win_prn():New(cPrint)
oPrn : LandScape := .f.
oPrn : FormType  := FORM_A4
oPrn : Copies    :=  1
oPrn : CharSet(255)
oPrn : setfont('Courier New',,10,,,,255)

If !oPrn:Create()
   hwg_Msginfo("Não foi criado documento")
   Return Nil
EndIf
If !oPrn:startDoc("Imprimindo Documento")
   hwg_Msginfo("Erro na Impressora")
   Return Nil
EndIf

HB_CDPSelect("PT850")
  //setprc(7,0)
  cText := memoread(cArq)
  nLinh := mlcount(cText)
  oPrn:NewLine()
  oPrn:NewLine()
  For n := 1 to nLinh
     oPrn:Textout(WIN_ansitooem(memoline(cText,,n)),.t.)
  Next
  oPrn:EndDoc()

HB_CDPSelect( "PTISO")

Return .t.
SET PRINTER TO LPT1 é arcaico demais, vamos modernizar os sistemas se não, não sairemos do lugar.
Esses comandos só existem ainda para fins de compatibilidade.
As impressoras de hoje, são todas wireless!!! não ensina coisa errada para as pessoas não!


Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

Set device to printer

Mensagem por alxsts »

Olá!

Que bacana Itamar! Belos exemplos.

Sugiro que coloque isto com um título sugestivo na seção Contribuições, Dicas e Tutoriais. Se ficar apenas neste tópico, não terá a mesma visibilidade. Foi bom o Jr resgatar um tópico tão antigo, dando oportunidade a você de fazer esta contribuição.

P.S.:
Toledo: a tag HT não está funcionando.

[Editado por Toledo] Teste da tag HT:
Win_PrintFileRaw WIN_PRINTERLIST win_PrinterGetDefault win_prn
[]´s
Alexandre Santos (AlxSts)
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Set device to printer

Mensagem por Itamar M. Lins Jr. »

Pois é, em pleno século 21 Wireless, bluetooth , Android... os caras estão lá na LPT1,COM1, as CPU´s nem vem mais com isso.
As antigas tudo bem no DOS Ok!! Mas no Windows vamos usar o que o sistema oferece.
O Pessoal está usando NET CAPTURE etc... lembrei lá dos tempos da NOVELL agora, rodando UM BAT p/ imprimir etc... Rapaz no Windows isso não rola mais não, ora funciona ora não funciona, é melhor usar o sistema de impressão do SO, usando ele via os comandos corretos, sabemos se a impressora está On Line etc...
O telefone da assistência técnica não vai parar nunca! Nos mandamos imprimir o windows que se vire para achar fisicamente onde está a impressora.
Se a impressora está On Line, use nPrnError := hb_ntos(win_printerStatus( cNumeDaDitaCuja )) !
Para ver se a impressora existe use: lPrnExiste := win_printerExists( cNumeDaDitaCuja )

Código: Selecionar todos

/* Copyright 2009 Viktor Szakats (vszakats.net/harbour) */

#require "hbwin"

#include "simpleio.ch"

PROCEDURE Main()

   Dump( win_printerList( .F., .F. ) )
   Dump( win_printerList( .F., .T. ) )
   Dump( win_printerList( .T., .F. ) )
   Dump( win_printerList( .T., .T. ) )

   ? "win_printerGetDefault():", ">" + win_printerGetDefault() + "<"
   ? "win_printerStatus():", hb_ntos( win_printerStatus() )

   RETURN

STATIC PROCEDURE Dump( a )

   LOCAL b, c

   ? "==="
   FOR EACH b IN a
      ?
      IF HB_ISARRAY( b )
         FOR EACH c IN b
            ?? c:__enumIndex(), c
            IF c:__enumIndex() == 2
               ?? "", ;
                  ">>" + win_printerPortToName( c ) + "<<", ;
                  "|>>" + win_printerPortToName( c, .T. ) + "<<|"
            ENDIF
            ?
         NEXT
         ? "---"
      ELSE
         ? b, win_printerExists( b ), win_printerStatus( b )
      ENDIF
   NEXT

   RETURN
Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
jartos
Usuário Nível 1
Usuário Nível 1
Mensagens: 14
Registrado em: 18 Dez 2014 12:34
Localização: sp-sp

Set device to printer

Mensagem por jartos »

Bom dia mestres. Vamos lá. Acabei de ler o tópico e concordo com os pontos de vista, sei que a solução está em reescrever os códigos antigos. Estou recompilando em Harbour HMG IDE, meus antigos sistemas feitos em clipper 5.3 e ainda utilizo o set printer. O que eu queria entender é porque rodando em ambiente windows 32bits o executável criado em harbour imprime só quando eu fecho o próprio. Em clipper o mesmo executável no mesmo pc imprime normal. Esse erro também acontecia em clipper, mas encontrei alguns sets que resolveram o problema na época (LPT_TIMEOUT=1 no regedit e [Network] PrintBufTime=1 ,[IFSMGR] PrintBufTime=1 no system.ini). Será que tem alguma config para Harbour também? O arquivo aparece no buffer da impressora e só executa quando saio do .exe
Clipeiro a mais de 30 anos.Ainda chamando Harbour de "Senhor". Meu perfil no linkedin ->https://br.linkedin.com/pub/jarbas-torelli/29/691/ba9
Avatar do usuário
Jairo Maia
Moderador
Moderador
Mensagens: 2785
Registrado em: 16 Ago 2010 13:46
Localização: Campinas-SP

Set device to printer

Mensagem por Jairo Maia »

Isso normalmente acontece quando não se fecha o SET DEVICE TO PRINTER. Antes de enviar para imprimir, coloque o comando: SET PRINTER TO que deve resolver.
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Avatar do usuário
Cavalo Marinho
Usuário Nível 3
Usuário Nível 3
Mensagens: 156
Registrado em: 01 Ago 2009 10:01
Localização: Aracaju/Se

Set device to printer

Mensagem por Cavalo Marinho »

Bom dia pessoal
Aproveitando o post, por favor me esclareçam, eu utilizando um arquivo em disco e a função Win_PrintFileRaw eu consigo imprimir em modo texto numa matricial, pois tenho muitos clientes que não querem trocar a velha matricial por terem menor custo, já converti meus sistemas console para harbour modo console é claro e utilizo set printer to lpt1, mas estou montando uma versão modo gráfico e aí quero mais detalhes para criar meus relatórios para imprimir nestas impressora em modo texto/rascunho pois é em mais rápido e não compromete tanto a impressora, quanto as laser ou jato estou utilizando miniprint (iniciando os trabalhos), a principio me parece ser simples, mas como eu disse estou apenas começando fiz o primeiro relatório bem pequeno, somente para teste.
Desde já agradeço.
microvolution
Usuário Nível 5
Usuário Nível 5
Mensagens: 1231
Registrado em: 02 Set 2011 22:17
Contato:

Set device to printer

Mensagem por microvolution »

PESSOAL BOM DIA!
quando estava no clipper eu usava o que tudo mundo usava: SET DEVICE TO PRINTER. (impressoras LPT1).

Para imprimir em USB eu usava um programinha (acho q todos usavam algo) externo que fica em tempo real na barra de tarefas que é o DOSPRN (alguns usam o DOS2USB).

Ao migar agora em janeiro/2015 (mantendo tudo em modo console) as coisas ainda imprimiam normalmente.

Agora fui instalar o meu aplicativo num cliente e percebi que o DOSPRN não mais imprime nas portas USB. Bom, não sei o que é e como disse o ITAMAR em tempos de ANDROID, TABLET, etc... não quero insistir em tentar fazer o DEVICE PRINTER funcionar.

Então, caí aqui neste post e, estou testando as orientações do ITAMAR.

Alguns problemas aconteceram, dentre eles alguns que não sei resolver, vejam:

Código: Selecionar todos

hbmk2: Processando arquivo de configura‡Æo:
       C:\MVinfo\hmg.3.0.46\hmg.3.0.35\harbour\bin\hbmk.cfg
hbmk2: Processando: SICCoSV.343.hbc
hbmk2: Linkando... SICCoSV.343.exe
C:/MVinfo/hmg.3.0.46/hmg.3.0.35//lib/libhmg.a(c_controlmisc.o):c_controlmisc.c:(.text+0x165c): multiple definition of `HB_FUN_GETDEFAULTPRINTER'
C:/MVinfo/hmg.3.0.46/hmg.3.0.35/harbour/lib/libhbwin.a(legacycp.o):legacycp.c:(.text+0x50): first defined here
.hbmk\win\mingw\pci10000.o:pci10000.c:(.data+0x1878): undefined reference to `HB_FUN_WIN_ANSITOOEM'
collect2: ld returned 1 exit status
hbmk2: Erro: Executando linkeditor. 1
gcc.exe .hbmk\win\mingw\pci10000.o .hbmk\win\mingw\dci10000.o .hbmk\win\mingw\dci10001.o .hbmk\win\mingw\dci10002.o .hbmk\win\mingw\enviarerro.o .hbmk\win\mingw\ext.o .hbmk\win\mingw\impresso.o .hbmk\win\mingw\pci10001.o .hbmk\win\mingw\pci10002.o .hbmk\win\mingw\pci10003.o .hbmk\win\mingw\pci10004.o .hbmk\win\mingw\pci10005.o .hbmk\win\mingw\pci10006.o 
ou seja:
1 - definição dupla de GETDEFAULTPRINTER. Como uso MODO CONSOLE e GRÁFICOS juntos, não posso eliminar a minha LIBHMG (include HMG.CH); Nesse caso, pelo pouco conhecimento que tenho, acho que tenho que eliminar a lib HBWIN (REQUIRE "HBWIN" que o ITAMAR colocou no código).
2 - função WIN_ANSITOOEM não está sendo encontrada.

Outros erros apareceram como o das mensagens e alterei-as para MSGINFO (retirei as letras anteriores) e deu tudo certo.

Bom, eu não quero voltar ao passado nem ficar estagnado mais no tempo, pois o tempo está passando e as pessoas (futuros clientes) querem coisas bem lindas, práticas e modernas.

Espero que possam ajudar a resolver esses erros e principalmente, saber como imprimir em matricial EPSON LX 300/LPT1 (a mais usada - acho) e também nas impressoras jato e tinta USB (quaisquer que estiverem instaladas), com a opção do usuário escolher ou o sistema (internamente - nosso aplicativo) saber se está instalada impressora LPT1 ou USB como padrão.

E, digo mais, imprimir na forma que já imprimia antes (aqueles @ ESC 27, LEMBRAM?)

Por enquanto é só.
Grato,
MICROVOLUTION - 16 anos Evoluindo Com Você!


Você já leu a Bíblia hoje?
João 3:16 - Porque Deus amou ao mundo de tal maneira que deu seu Único Filho para que todo aquele que nEle crê não pereça mas tenha a Vida Eterna!
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Set device to printer

Mensagem por Itamar M. Lins Jr. »

O problema é com essa versão ai do HMG.
Copiaram as funções da hbwin p/ outra lib c_controlmisc.c conflitando as as funções nativas da hbwin.
A função win_ansitooem mude para hb_ANSIToOEM( s ) porque seu harbour é velho! É de junho de 2010! De lá para cá já passou muita água debaixo da ponte!

Você deveria focar no Harbour(versão) depois IDE HMG. Modo console não precisa de nada apenas do Harbour, nem de IDE precisa.
Vc pode está usando uma versão muito velha da IDE e pode está misturando com o Harbour novo.

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Set device to printer

Mensagem por Itamar M. Lins Jr. »

Os comandos da LX-300 são os mesmos! say chr(27)+"@" etc.. não mudaram. Agora todas as LX-300 II+ e outras compradas agora vem com porta USB ou Wifi.
Recentemente houve uma modificação correção dessa classe getdefault... portanto é bom atualizar seu harbour e/ou se livrando das funções ou bibliotecas exclusivistas que impedem vc de usar a versão mais nova do Harbour-> 3.2 ou 3.4

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Set device to printer

Mensagem por Itamar M. Lins Jr. »

Como uso MODO CONSOLE e GRÁFICOS juntos, não posso eliminar a minha LIBHMG (include HMG.CH);
Tem como mostrar uma tela gráfica misturada com não gráfica ai p/ poder entender ? Porque pelo que sei a Minigui não funciona assim.
A biblioteca HBWIN é padrão no [x]Harbour tem as funções exclusivas de acesso ao sistema operacional WINDOWS. Impressoras, Registro(regedit),OLE, Activex, etc...
O que tem nessa LIBHMG ?

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
microvolution
Usuário Nível 5
Usuário Nível 5
Mensagens: 1231
Registrado em: 02 Set 2011 22:17
Contato:

Set device to printer

Mensagem por microvolution »

Itamar M. Lins Jr. escreveu:O problema é com essa versão ai do HMG.
Copiaram as funções da hbwin p/ outra lib c_controlmisc.c conflitando as as funções nativas da hbwin.
A função win_ansitooem mude para hb_ANSIToOEM( s ) porque seu harbour é velho! É de junho de 2010! De lá para cá já passou muita água debaixo da ponte!

Você deveria focar no Harbour(versão) depois IDE HMG. Modo console não precisa de nada apenas do Harbour, nem de IDE precisa.
Vc pode está usando uma versão muito velha da IDE e pode está misturando com o Harbour novo.

Saudações,
Itamar M. Lins Jr.
Então professor, cada um anda de acordo com o que se consegue. Por exemplo, uma amiga (funcionária de uma empresa cliente), gastou 5 anos para aprender meu software (meia boca ainda rsrsrs), já o irmão dela, com uma semana já sabia muita coisa.
Eu, programo desde os 14 anos, na época 1987 não tinha computador e meu irmão comprou umas revistas pra virar uma enciclopédia. Essas revistas eram lançamento da EDITORA NOVA CULTURAL (que era ABRIL CULTURAL e se dividiram em 2 empresas) que chamava-se INPUT.

Ali, sem computador eu decorei toda a liniguagem BASIC (8 bits) nos 7 modelos/fabricantes que existiam na época, que me lembro até hoje:
SINCLAIR, ZX81, ZX SPETRON, TRS80 (eram os famosos CP500), TRS COLLOR, TK 2000 (apple), MSX (Gradiente - meu irmão comprou esse e nunca foi usado. Tá lá em casa trancado a 7 chaves, numa sala que ele possui).

Só pude colocar em prática ou testar esses comandos em 1988 quando entrei para uma metalúrgica e lá fucei num TK2000 onde infelizmente por causa de mexer fui mandado embora com apenas 16 anos sem direito ao perdão (sendo o melhor alundo do SENAI).

De lá pra cá, anos se passaram e estou com 43 anos e dormi, ou melhor, fiquei adormecido no tempo.
Pensei por diversas vezes em esquecer que já fui um dia programador. Mas toda vez que entro numa loja informatizada, penso, aqui poderia ser um cliente meu.

Tenho apenas 1 cliente que me paga mensalmente, outro que me comprou o mesmo software (e não me chama pra nada) e um outro que me pagava mas a empresa teve que cortar gastos.
Agora, já no momento da desistência, consegui finalmente migrar em janeiro/2015 e infelizmente, já queria que tudo estivesse em telas gráficas, sql, servidores, sites, e monttttttttttãaooooo de clientes, mas,como disse, estava como "a bela adormecida" cochilando por longos 20 ou mais anos.

Agora, gostaria da pasciência de todos em me repassar os seus vastos conhecimentos.

Então, já que o problema é focar no harbour e não na IDE, eu fico mais atrasado que todos, pois nem sei que versão é essa desse tal harbour.
Só sei que baixei o HB32, o HMG 3.035, o HMG 3.046, o HMG 3.4.0, também o MINIGUI EXT e agora também um tal de HHOO (mais ainda não entendi nada dessa IDE).

Enfim, me ensinem como saber a versão de meu HARBOUR e tudo mais.
Vlw!
Grato,
MICROVOLUTION - 16 anos Evoluindo Com Você!


Você já leu a Bíblia hoje?
João 3:16 - Porque Deus amou ao mundo de tal maneira que deu seu Único Filho para que todo aquele que nEle crê não pereça mas tenha a Vida Eterna!
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Set device to printer

Mensagem por Itamar M. Lins Jr. »

Pela tela de erro vi que está usando harbour 3.2
Basta entrar na pasta \seuharbour\contrib\hbwin\tests\
E lá dentro tem vários arquivos de testes.
Veja o prn1.prg
para compilar:

Código: Selecionar todos

>hbmk2 prn1.prg
Mande imprimir e veja o resultado.

Depois estude o prn2.prg

Código: Selecionar todos

#require "hbwin"

PROCEDURE Main()

   LOCAL nPrn := 1
   LOCAL cFileName := Space( 40 )
   LOCAL GetList := {}

   LOCAL aPrn := win_printerList()

   CLS

   IF Empty( aPrn )
      Alert( "No printers installed - Cannot continue" )
   ELSE
      DO WHILE nPrn != 0
         CLS
         @ 0, 0 SAY "win_PrintFileRaw() test program. Choose a printer to test"
         @ 1, 0 SAY "File name:" GET cFileName PICT "@!K"
         READ
         @ 2, 0 TO MaxRow(), MaxCol()
         nPrn := AChoice( 3, 1, MaxRow() - 1, MaxCol() - 1, aPrn, .T.,, nPrn )
         IF nPrn != 0
            PrnTest( aPrn[ nPrn ], cFileName )
         ENDIF
      ENDDO
   ENDIF

   RETURN

STATIC PROCEDURE PrnTest( cPrinter, cFileName )

   LOCAL lDelete

   IF Empty( cFileName )
      hb_MemoWrit( cFileName := hb_FNameExtSet( __FILE__, ".prn" ), "Hello World!" + Chr( 12 ) )
      lDelete := .T.
   ELSE
      lDelete := .F.
   ENDIF

   Alert( "win_PrintFileRaw() returned: " + hb_ntos( win_PrintFileRaw( cPrinter, cFileName, "testing raw printing" ) ) )

   IF lDelete
      FErase( cFileName )
   ENDIF

   RETURN

>hbmk2 prn2.prg
Não tem mistério nenhum, não precisa de IDE, basta apenas o harbour 3.2 está instalado.

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Set device to printer

Mensagem por Itamar M. Lins Jr. »

me ensinem como saber a versão de meu HARBOUR e tudo mais.
Tutorial pequeno, simples, sem mistério!
https://pctoledo.org/forum/viewto ... 43&t=16195
Saber a versão do Harbour:

Código: Selecionar todos

harbour -build
Saber a versão do MingW(GCC)

Código: Selecionar todos

gcc -v
IDE use qualquer uma, depois que migrar seu sistema todo em modo console no windows.

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
microvolution
Usuário Nível 5
Usuário Nível 5
Mensagens: 1231
Registrado em: 02 Set 2011 22:17
Contato:

Set device to printer

Mensagem por microvolution »

Itamar M. Lins Jr. escreveu: Não tem mistério nenhum, não precisa de IDE, basta apenas o harbour 3.2 está instalado.
PREZADO professor, eu não sei como compilar sem IDE, e acredito que como eu tem vários assim, que não temos mais tempo para reaprender de forma difícil.

Com a HMG (acho q chama-se Harbour MiniGui) a coisa é tudo automatizada.
Por exemplo, enquanto digito essa resposta a HMG está fazendo o BUILD pra mim.
Se der certo eu executo as alterações de teste q fiz se der errado, quebro cabeça em resolver as pendências, se não consigo, venho aqui e compartilho com todos e todos crescemos juntos e o estado de "dormência" vai acabando pra todos.

Mas, obrigado pela pronta resposta q V.Sa., o PC, o Toledo, o Hasse, Maligno e dentre outros q esqueci o nome, e, através dos nomes aqui citados lembro dos demais...
opa... já compilou aqui... vou testar
clip abraço!
Grato,
MICROVOLUTION - 16 anos Evoluindo Com Você!


Você já leu a Bíblia hoje?
João 3:16 - Porque Deus amou ao mundo de tal maneira que deu seu Único Filho para que todo aquele que nEle crê não pereça mas tenha a Vida Eterna!
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Set device to printer

Mensagem por Itamar M. Lins Jr. »

Ola!
tempo para reaprender de forma difícil.

Essa sua forma que é a difícil!

Vai com calma, tem que saber ler nas entrelinhas...
O problema é que sua IDE está desatualizada em relação ao Harbour e está fazendo uma bagunça com as bibliotecas.

1) Quem compila não é a IDE.
Olhe aqui uma tela de erro seu...
collect2: ld returned 1 exit status
hbmk2: Erro: Executando linkeditor. 1
Veja que tem um programa ai chamado hbmk2. Vc provavelmente está criando um arquivo com a extensão .hbp, nada disso é da IDE.
Da IDE da Minigui, vc só está usando o editor. Vc pode usar o Notepad++, HBIDE, Programmers notepad, etc...
Se vc não está desenhando telas e controles da Minigui, essa IDE p/ vc é apenas um editor.
Tem essa outra IDE muito melhor que a IDE da Minigui, na minha opinião.
http://www.xailer.com/download?file=3
A HBIDE que é a que estou usando tem muito mais recursos ainda.

A sua IDE só faz isso aqui.

Código: Selecionar todos

hbmk2 seuprojeto.hbp
O importante é a IDE ler arquivos com a extensão HBP trabalhar em conjunto com o hbmk2 coisa que a HBIDE faz muito bem.
Por isso estou explicando p/ você, pois essas versões da HMG que vc está usando junto com o Harbour 3.2, está fazendo uma salada de libs ai.
Essa IDE HMG é muito pobre em relação a outras, tipo Notepad++, Programers... etc...

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Responder