Página 2 de 3
Re: Erro compilação quando insiro mais prg
Enviado: 07 Dez 2025 11:11
por JoséQuintas
Também funcionam parâmetros colocando na linha de comando.
Ao invés de mexer no hbp, coloque na linha de comando.
Até testar ao contrário também.
O que colocar na linha de comando é adicionado na compilação, da mesma forma que fosse colocado dentro do hbp.
Se o comportamento for diferente... editor de textos bagunçou hbp.
Re: Erro compilação quando insiro mais prg
Enviado: 07 Dez 2025 11:14
por JoséQuintas
Mais que isso, só se for por acesso remoto, pra tentar desvendar o mistério.
Por enquanto não faz sentido, ou sujeira no hbp invalidando o conteúdo, ou no prg.
Sei lá se no prg tem /* */ transformando tudo em comentário.
Ou sujeira UTF-8, é normal se pegar coisa de página de internet, ou até de post daqui.
Hoje meio tranquilo aqui.
Re: Erro compilação quando insiro mais prg
Enviado: 07 Dez 2025 11:18
por JoséQuintas
Faz o seguinte: ANEXA o HBP, não copia o conteúdo, coloca o arquivo como anexo.
Assim ele não vai ser alterado no post.
Re: Erro compilação quando insiro mais prg
Enviado: 07 Dez 2025 12:31
por LDOSISTEMAS
Tentei aqui usando *.prg limpando o hbp fazendo manualmente hbmk2 , em todas as situações retornou o mesmo erro. Eliminei 3 prg anteriores que que já estavam ok para dar lugar as 3 novas funções e compilou....
anexei o arquivo hbp, tive que alterar a extensão porque o site não deixou subir com essa extensão, mas o conteúdo esta ok.
Re: Erro compilação quando insiro mais prg
Enviado: 07 Dez 2025 14:25
por JoséQuintas
Testei aqui e não tem nada anormal no hbp.
O máximo, mesmo na dúvida, seria trocar "\" por "/".
Então voltamos aos testes SEM O HBP.
A intenção aqui seria ver se somem/aparecem as funções do gasp40hb.
Outro teste NÃO CONVENCIONAL:
-hblib é pra gerar lib
-hbx é pra criar um hbx com a lista de funções encontradas na compilação
Olhando o hbx vai ter a visão do que está sendo encontrado nesse fonte.
Re: Erro compilação quando insiro mais prg
Enviado: 07 Dez 2025 14:30
por JoséQuintas
Lembrei de uma coisa, mas não lembro bem.
Havia algo sobre diferenciar maiúsculas e minúsculas.
Não lembro que fim houve nisso, se virou automático ou não.
Re: Erro compilação quando insiro mais prg
Enviado: 07 Dez 2025 14:44
por JoséQuintas
Também tem o que seria talvez mais "normal"
Primeiro a lista de todos os fontes.
Depois o resto.
Apesar de teoricamente não fazer diferença.... vai saber...
Por enquanto é mistério, chutando possíveis soluções.
Ao mesmo tempo que não faz diferença a ordem ou quebra de linha.... de repente um pode ser considerado continuação do anterior, e não fica visível isso.
Re: Erro compilação quando insiro mais prg
Enviado: 07 Dez 2025 14:51
por JoséQuintas
Pera aí....
Deixei passar....
HBP é uma coisa, HBC é outra.
libs= não existe no HBP, e no seu tem.
Re: Erro compilação quando insiro mais prg
Enviado: 07 Dez 2025 16:24
por Itamar M. Lins Jr.
Olá!
Corrige seu código:
Código: Selecionar todos
#pragma begin dump
HB_FUN_EMAILMDFE
// Código em linguagem C
#pragma End dump
Deve ser:
Código: Selecionar todos
#pragma BEGINDUMP
*/Se precisar/*
#include <hbapi.h>
#include <hbapiitm.h>
#include <hbapierr.h>
HB_FUNC( EMAILMDFE )
{...
Re: Erro compilação quando insiro mais prg
Enviado: 07 Dez 2025 16:31
por Itamar M. Lins Jr.
Olá!
Não entendi o pq dessas funções em C.
Essas funções todas estão no arquivo prg gasp40hb.prg
É do gaspro em C ? EMAIL/XML/MDFE...
Código: Selecionar todos
.hbmk/win/mingw/PTEN01F9.o:PTEN01F9.c:(.data+0x2d8): undefined reference to `HB_
FUN_RATEIO'
Veja se são em C mesmo.
Re: Erro compilação quando insiro mais prg
Enviado: 07 Dez 2025 16:49
por Itamar M. Lins Jr.
Olá!
Vou tentar explicar

pq de C só sei 0,0001%
Isso no Harbour(compilador) ou C
O código #pragma begin dump ou BEGINDUMP ou XYZDUMP será IGNORADO pelo compilador C. Não dá erro nenhum depois dai.
O Harbour(compilador) pega BEGINDUMP
TUDO JUNTO E MAIUSCULAS e compila. No seu tá assim "begim dump" ignorado pelo harbour.
Mais ai dentro tem que ter Código/Função do Harbour
JUNTO HB_PARAM() junto com o C... Não é qualquer código em C ai não.
Por exemplo, peguei um pedaço do código do Antonio Linares.
Código: Selecionar todos
#pragma BEGINDUMP
#include <hbapi.h>
#include <hbapiitm.h>
#include <hbapierr.h>
#define UNROLL_FACTOR 4
HB_FUNC( MATMUL )
{
PHB_ITEM pMatrix1 = hb_param( 1, HB_IT_ARRAY );
PHB_ITEM pMatrix2 = hb_param( 2, HB_IT_ARRAY );
if( pMatrix1 && pMatrix2 )
{
HB_SIZE nRowsA = hb_arrayLen( pMatrix1 );
HB_SIZE nColsA = hb_arrayLen( hb_arrayGetItemPtr( pMatrix1, 1 ) );
HB_SIZE nColsB = hb_arrayLen( hb_arrayGetItemPtr( pMatrix2, 1 ) );
Re: Erro compilação quando insiro mais prg
Enviado: 07 Dez 2025 18:11
por LDOSISTEMAS
boa tarde
Não tem nada em C, é tudo prg normal com codigo xbase. a função que listou é esta:
Código: Selecionar todos
proc emailmdfe(mail,nummdfe,ser,indice)
if 'CAMINHO'$M->EMP_MENU
Caminho=subs(DIREXe,1,3)
else
caminho="c:\"
endi
//rotina para enviar o email
IF !LF_ISFILE(CAMINHO+"NFIMPOR\email\mdfe")
LF_MKDIR(CAMINHO+"NFIMPOR\email\mdfe")
ENDIf
vgorig =CAMINHO+"nfimpor\enviado\AUTORIZADOS\"+lpad(year(MDFE->dtemissao),4,"0")+;
lpad(month(MDFE->dtemissao),2,"0")+;
"\"+MDFE->chaveMDFE+"-procmdfe.xml" //verifica se o danfe existe
IF EMPTY(MDFE->chavemdfe)
dbox([ATENCAO ESSA NOTA NAO FOI AUTORIZADA VERIFIQUE !])
RETU
ENDI
lf_fcopy(vgorig,CAMINHO+"NFIMPOR\email\"+MDFE->idmdfe+".xml")
destino:=CAMINHO+"NFIMPOR\email\"+MDFE->idmdfe+".xml"
xcomand=caminho+'unimake\uninfe\unidanfe.exe arquivo='+chr(34)+destino+chr(34)+;
[ email=]+alltrim(mail)
run(xcomand)
retu
Acho que o compilador que cria o OBJ dele e mostra em C assim como na função rateio.
Re: Erro compilação quando insiro mais prg
Enviado: 07 Dez 2025 19:30
por JoséQuintas
LDOSISTEMAS escreveu: 06 Dez 2025 12:44
Acho que não porque se tiro os novos PRG ele já compila normalmente e as funções que ele mostra estão no arquivo que não é retirado.
Revendo as mensagens.
Na prática talvez possa ser limite sim.
Sabe porque ?
Acho que acaba sendo usada uma única linha pra tudo, e se isso for feito, pode cair em algum limite do windows.
mais de 500 nomes, supondo 10 letras por nome, vai dar uma linha de 5.000 caracteres.
Perguntando pra IA:
O limite de uma linha de comando no Windows é de 8191 caracteres no Prompt de Comando (cmd.exe). Já quando se usa a função CreateProcess, o limite é maior: 32.767 caracteres
Se precisar de linha com comandos maiores, utilize o PowerShell.
Então, limite existe, se é o seu caso ou não, não sei dizer.
Alternativa:
Dividir em libs, lembrando que se não chamar o programa diretamente ele não vai entrar no EXE.
do( "algumprograma" ) isso não vai puxar o "algumprograma" da lib
Já
do algumprograma
ou algumprograma()
Isso vai puxar da lib.
cada parte adicional
Código: Selecionar todos
aplicativo_partex.hbp
lista com prgs
-hblib
-oaplicativo_partex
no principal, além de alguns fontes, e o que já indica
Código: Selecionar todos
-Lpathdaspartes
-laplicativo_parte2
-laplicativo_parte3
-laplicativo_parte4
SE QUISER, um hbp adicional, considerado projeto/sub-projetos
Código: Selecionar todos
-hbcontainer
aplicativo_parte2.hbp
aplicativo_parte3.hbp
aplicativo_parte4.hbp
aplicativo_geral.hbp
Ao compilar esse acima, ele vai compilar cada um dos outros.
Esse acima é só uma lista dos outros.
Lógico, se o principal depende de todos juntos, o principal tem que ser o último da lista.
Re: Erro compilação quando insiro mais prg
Enviado: 07 Dez 2025 19:45
por LDOSISTEMAS
vou tentar aqui obrigado
Re: Erro compilação quando insiro mais prg
Enviado: 07 Dez 2025 21:12
por Itamar M. Lins Jr.
Olá!
Não tem nada em C, é tudo prg normal com codigo xbase. a função que listou é esta:
Qual é a versão do Harbour que vc está usando ?
Entendi... É pq vc usou um exemplo de #pragma dai fiz confusão.