API para CIOT

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

Moderador: Moderadores

Avatar do usuário
Alexandre Silva
Usuário Nível 3
Usuário Nível 3
Mensagens: 376
Registrado em: 26 Mar 2007 00:16
Localização: Itapema - SC

API para CIOT

Mensagem por Alexandre Silva »

Pessoal
Alguem usa a API da Truckpay para CIOT ou Vale Pedagio ?

Como faço para poder usar a API para emitir o CIOT
Documentacao
https://doc.truckpadpay.com.br/


Tenho esses 2 modelos abaixo que usam #include "hbapi.h"
esse include faz referencia ao hbdefs.h que por sua vez faz referencia
a uma serie de arquvos stxxxx.h , E nao tenho esses arquivos , Nao consigo compilar
Ta faltando o que no harbour 3.2 ?

Código: Selecionar todos

#include "hbapi.h"

PROCEDURE gerarCIOT()
    LOCAL cUrl := "https://api.truckpadpay.com.br/v1/emissao";
    LOCAL cToken := "seu-token-aqui";
    LOCAL oData := {} 
    oData["valor"] := 1000.00
    oData["id_carreteiro"] := "123456"
    oData["tipo_operacao"] := "carga"
    oData["descricao"] := "Frete para São Paulo"
    oData["placa_veiculo"] := "AAA1234"
    oData["placa_reboque1"] := "BBB5678"
    oData["cpf_cnpj_pagar"] := "12345678900"
    oData["nome_pagar"] := "Transportadora XPTO"
    oData["cidade_origem"] := "Rio de Janeiro"
    oData["uf_origem"] := "RJ"
    oData["cidade_destino"] := "São Paulo"
    oData["uf_destino"] := "SP"
    
    LOCAL cJson := JsonToStr(oData)
    LOCAL oHeaders := {}
    oHeaders["Content-Type"] := "application/json"
    oHeaders["Authorization"] := "Bearer " + cToken
    LOCAL cResult := HttpPost(cUrl, cJson, oHeaders)
    
    ? "Resultado: ", cResult

    LOCAL oResponse := JsonToObj(cResult)
    IF oResponse.success = .T.
        ? "CIOT gerado: ", oResponse.dados.ciot
    ELSE
        ? "Erro ao gerar CIOT: ", oResponse.mensagem
    ENDIF
RETURN
esse outro tambem

Código: Selecionar todos

#include "hbapi.h"

PROCEDURE main()
    LOCAL cUrl, cToken, cCnpj, cCpf, cOrigem, cDestino, cValor, cCIOT
    cUrl := "https://api.truckpad.io/v1/payments/ciot"
    cToken := "SEU_TOKEN_DE_AUTORIZACAO"
    cCnpj := "CNPJ_DO_EMITENTE"
    cCpf := "CPF_DO_TOMADOR"
    cOrigem := "CIDADE_ORIGEM"
    cDestino := "CIDADE_DESTINO"
    cValor := "VALOR_DO_FRETE"
    cCIOT := ""

    hb_curl_init()

    // Cria o header da requisição
    hb_curl_setopt( CURLOPT_HTTPHEADER, { "Content-Type: application/json", ;
                                           "Authorization: Bearer " + cToken } )

    // Cria o JSON de dados da requisição
    LOCAL cJsonData := '{ "cnpj": "' + cCnpj + '", ' + ;
                        '"cpf": "' + cCpf + '", ' + ;
                        '"origin": "' + cOrigem + '", ' + ;
                        '"destination": "' + cDestino + '", ' + ;
                        '"amount": "' + cValor + '" }'

    // Configura a URL e os dados da requisição
    hb_curl_setopt( CURLOPT_URL, cUrl )
    hb_curl_setopt( CURLOPT_POST, .T. )
    hb_curl_setopt( CURLOPT_POSTFIELDS, cJsonData )

    // Executa a requisição e retorna a resposta
    LOCAL cResponse := hb_curl_exec()
    hb_curl_cleanup()

    // Verifica se a requisição foi bem-sucedida e extrai o valor do CIOT
    IF hb_curl_getinfo( CURLINFO_RESPONSE_CODE ) == 201
        LOCAL oJson := JsonNew()
        JsonImport( oJson, cResponse )
        cCIOT := JsonGet( oJson, "ciot" )
        JsonRelease( oJson )
        ? "CIOT gerado com sucesso: " + cCIOT
    ELSE
        ? "Erro ao gerar o CIOT: " + cResponse
    ENDIF
RETURN
* Clipper 5.2e/Gaspro 4.0 /CDX/Blinker 7.0 Harbour 3.2 Console Hbmk2
Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

API para CIOT

Mensagem por rochinha »

Amiguinhos,

Tudo vai depender da versão de compilador C++ que você tem integrado ao seu Harbour que pode ser Borland ou MingW.

Se na pasta include do seu compilador C++ não estiverem estes arquivos acontecerá a falha de não encontrado. Sugestão instalar e PATHear corretamente estes diretórios e passá-los corretamente no seu método de compilação por .BAT ou HBMK2.

Se a compilação der por falta de mais algum arquivo .H acesse o endereço https://github.com/gcc-mirror/gcc/tree/ ... c/ginclude e baixe os arquivos necessários usando o modo raw(basta procurar este botão na página do arquivo aberto e pressionar e depois usar um CTRL+S)
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Avatar do usuário
Alexandre Silva
Usuário Nível 3
Usuário Nível 3
Mensagens: 376
Registrado em: 26 Mar 2007 00:16
Localização: Itapema - SC

API para CIOT

Mensagem por Alexandre Silva »

Obrigado pelo retorno

Eu baixei todos os *.h e salvei em \hb32\include
O harbou que tenho baixei pronto

Os sistemas eu compilo assim : hbmk2 projexec.hbp

sendo o projeto.hbp

Código: Selecionar todos

-prgflag=/l
-L\clipper5\lib
-lxhb
-lhbct
-lhbwin
-lhbtip
-lmylib
-es2
-compr=yes
-rebuild
transp.prg
transp1.prg
funcoes.prg
...
...
ESTA DANO ESSE ERRO..
C:\SISTEMAS\TRANSP>hbmk2 projeto.hbp
harbour 3.2.0dev (r2002240732)
copyright (c) 1999-2020, https://harbour.github.io/
compiling 'tran23x.prg'...
C:\hb32\include\hbdefs.h(50) Error F0029 Can't open #include file 'stdarg.h'
hbmk2[projeto]: Error: Running Harbour compiler (built-in). 1
* Clipper 5.2e/Gaspro 4.0 /CDX/Blinker 7.0 Harbour 3.2 Console Hbmk2
Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

API para CIOT

Mensagem por rochinha »

Amiguinhos,

Então Alexandre Silva...você deve incluir a chamadas para as includes necessarias acrescentando -i... e as pastas onde devem ser encontradas os .ch
C:\hb32\include\hbdefs.h(50) Error F0029 Can't open #include file 'stdarg.h'
Aqui vemos que seu prg puxa por C:\hb32\include\hbdefs.h e este por sua vez puxa stdarg.h que ele não encontra porque hbdefs.h busca na mesma pasta onde ele está.

Suponha que hbdefs.h esteja na pasta C:\hb32\include e stdarg.h esteja na pasta C:\hb32\include\blablabla\inc, então você deve acrescentar no seu hbp linhas como:

Código: Selecionar todos

-prgflag=/l
-L\clipper5\lib

-iC:\hb32\include
-iC:\hb32\include\blablabla\inc

-lxhb
-lhbct
-lhbwin
Ao instalar a versão https://sourceforge.net/projects/harbour-project/files/binaries-windows/nightly/ eu encontrei os arquivos faltantes dentro da pasta C:\hb32\comp\mingw\include\c++\7.3.0\tr1
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Avatar do usuário
Alexandre Silva
Usuário Nível 3
Usuário Nível 3
Mensagens: 376
Registrado em: 26 Mar 2007 00:16
Localização: Itapema - SC

API para CIOT

Mensagem por Alexandre Silva »

Entao..
1-So para ficar claro uso o Clipper e HB na Unidade D:
2-Nas minhas variaveis de ambiente ja tem
INCLUDE=D:\CLIPPER5\INCLUDE;D:\hb32\include
LIB=D:\CLIPPER5\LIB

3-Ao colocar
-iD:\hb32\include
-iD:\hb32\comp\mingw\include\c++\7.3.0\tr1
tive esse retorno

Código: Selecionar todos

D:\SISTEMAS\TRANSP>hbmk2 projeto.hbp
hbmk2[projeto]: Atenção: Ignorando explicitamente o diretório do núcleo header
                especificado: D:\hb32\include (na opção '-iD:\hb32\include' in
                projeto.hbp:4)
hbmk2[projeto]: Atenção: Ignorando explicitamente o diretório do núcleo header
                especificado: D:\hb32\comp\mingw\include\c++\7.3.0\tr1 (na
                opção '-iD:\hb32\comp\mingw\include\c++\7.3.0\tr1' in
                projeto.hbp:5)
Harbour 3.2.0dev (r2104281802)
Copyright (c) 1999-2021, https://harbour.github.io/
Compiling 'tran23x.prg'...
D:\hb32\include\hbdefs.h(50) Error F0029  Can't open #include file 'stdarg.h'
hbmk2[projeto]: Error: Running Harbour compiler (built-in). 1
4-Tentei entao copiar todo o conteudo de D:\hb32\comp\mingw\include\c++\7.3.0\tr1
para hb32\include e tirar as linhas -i do script , e o erro é esse

Código: Selecionar todos

D:\SISTEMAS\TRANSP>hbmk2 projeto.hbp
Harbour 3.2.0dev (r2104281802)
Copyright (c) 1999-2021, https://harbour.github.io/
Compiling 'tran23x.prg'...
D:\hb32\include\stdarg.h(32) Error F0029  Can't open #include file 'tr1/cstdarg'
hbmk2[projeto]: Error: Running Harbour compiler (built-in). 1
Interessante que esse arquivo cstdarg nao tem extencao
continuo sem conseguir compilar
Alguem me ajude por favor !! Nao consigo usa os recursos do harbour
* Clipper 5.2e/Gaspro 4.0 /CDX/Blinker 7.0 Harbour 3.2 Console Hbmk2
Avatar do usuário
Alexandre Silva
Usuário Nível 3
Usuário Nível 3
Mensagens: 376
Registrado em: 26 Mar 2007 00:16
Localização: Itapema - SC

API para CIOT

Mensagem por Alexandre Silva »

poise
coloquei esse include nas variaveis de ambiente
INCLUDE=D:\CLIPPER5\INCLUDE;D:\hb32\include;D:\hb32\comp\mingw\i686-w64-mingw32
Consigo compilar.

mas tudo que é colocado abaixo do include é ignorado

Código: Selecionar todos

*-----------------------------
* tranciot.prg
* #include "httpclient.ch"
* #include "jsonlib.ch"
* #include "curl.ch"
* #include 'inkey.ch'
*-----------------------------
function tciot()
#include "hbapi.h"
#include "hbinet.ch"

aqui deveria dar erro

alert('cheguei aqui')

retu
Nada que tem depois dos include é considerado, se eu colocar um desses includes em outro prg, todas as funcoes daquele prg vai dizer que nao existem !

Preciso muito usar essas ferramentas, hpapi curl json, para poder usar uma API,
* Clipper 5.2e/Gaspro 4.0 /CDX/Blinker 7.0 Harbour 3.2 Console Hbmk2
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

API para CIOT

Mensagem por JoséQuintas »

Tanta pesquisa, não sei pra que...

É só olhar o fonte, apaga o #include, não usa pra nada.

No primeiro tem função que não faz parte do harbour, provavelmente é o conhecido xmlhttp que faz parte do windows, mas sem a função não dá pra ver os detalhes.

No segundo, vai depender de ter libcurl e ssl.
Essas LIBs são opcionais, e não é todo harbour que tem.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
Alexandre Silva
Usuário Nível 3
Usuário Nível 3
Mensagens: 376
Registrado em: 26 Mar 2007 00:16
Localização: Itapema - SC

API para CIOT

Mensagem por Alexandre Silva »

Estou me referindo a esses Includes, se coloco em qualquer prg, tudo que esta abaixo nao é compilado..
Nao sao includes do Harbour ?

#include "hbapi.h"
#include "hbinet.ch"

Que Includes ou lib devo usar para poder ter acesso a API, ja mencionda anteriormente.
Na troca de mensagens com a API de CIOT, será utilizado o
padrão JSON (JavaScript Object Notation). Por isso, não é
preciso fornecer o tipo de retorno desejado, toda requisição
apresentará a informação no cabeçalho HTTP.
* Clipper 5.2e/Gaspro 4.0 /CDX/Blinker 7.0 Harbour 3.2 Console Hbmk2
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

API para CIOT

Mensagem por alxsts »

Olá!

Olhando rapidamente, estranhei este INCLUDE com extensão .h... esta extensão é normalmente usada em programas escritos em linguagem C. Remova esta linha.

Arquivos de include para xBase tem extensão .ch (Clipper Header).
[]´s
Alexandre Santos (AlxSts)
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

API para CIOT

Mensagem por JoséQuintas »

Alexandre Silva escreveu:Estou me referindo a esses Includes, se coloco em qualquer prg, tudo que esta abaixo nao é compilado..
Nao sao includes do Harbour ?
Não é que não compila.
Compila mas mostra mensagem de erro.
Se não aceita o conteúdo é porque tá errado.
Como já foi dito, #include pra prg usa arquivos .ch e não .h

O ideal é ir lá de onde vieram os fontes e perguntar, já que são fontes inválidos.
Se já começaram inválidos, como saber se o restante é válido ?
Será que os fontes são pra ajudar ou pra atrapalhar ?
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

API para CIOT

Mensagem por JoséQuintas »

Faltou acrescentar:

O primeiro fonte está errado, não vai funcionar nunca.

- tem #include inválido pra PRG
- tem uso inválido de hash em variável array
- tem função que não existe no fonte

O segundo.... sei lá... não uso isso.
Deveria ter pelo menos o #include da libcurl

Ajuda ? CURL é da lib CURL que fica na pasta contrib/CURL que deve ter include, possivelmente #include "hbcurl.ch", mas basta olhar na pasta pra saber o nome correto.

Se esse segundo vai funcionar ? não faço a menor idéia.... tá tudo suspeito...
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

API para CIOT

Mensagem por rochinha »

Amiguinhos,

Alexandre Silva.
É bem simples. Uma vez instalado o MingW e PATHeado é bem dificil ocorrerem erros na geração do executável a não ser que existam erros no código criado.

Sem saber o conteúdo do fonte e nem a fonte do fonte não é possivel determinar a sua conclusão.

CIOT me remete a Internet Of Things.

Se o código que se está querendo compilar esteja puramente em C não é possivel mudar algumas linhas e compilar como sendo .PRG.

Apresente o fonte ou a fonte do fonte para determinarmos o que se pode fazer para obter uma compilação, senão ficaremos batendo cabeça.
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

API para CIOT

Mensagem por JoséQuintas »

Não tem segredo é só compilar, de preferência com -w3 -es2

Código: Selecionar todos

// #include "hbapi.h"

PROCEDURE gerarCIOT()
    LOCAL cUrl := "https://api.truckpadpay.com.br/v1/emissao";
    LOCAL cToken := "seu-token-aqui";
    LOCAL oData := {}
    oData["valor"] := 1000.00
    oData["id_carreteiro"] := "123456"
    oData["tipo_operacao"] := "carga"
    oData["descricao"] := "Frete para São Paulo"
    oData["placa_veiculo"] := "AAA1234"
    oData["placa_reboque1"] := "BBB5678"
    oData["cpf_cnpj_pagar"] := "12345678900"
    oData["nome_pagar"] := "Transportadora XPTO"
    oData["cidade_origem"] := "Rio de Janeiro"
    oData["uf_origem"] := "RJ"
    oData["cidade_destino"] := "São Paulo"
    oData["uf_destino"] := "SP"

    LOCAL cJson := JsonToStr(oData)
    LOCAL oHeaders := {}
    oHeaders["Content-Type"] := "application/json"
    oHeaders["Authorization"] := "Bearer " + cToken
    LOCAL cResult := HttpPost(cUrl, cJson, oHeaders)

    ? "Resultado: ", cResult

    LOCAL oResponse := JsonToObj(cResult)
    IF oResponse.success = .T.
        ? "CIOT gerado: ", oResponse.dados.ciot
    ELSE
        ? "Erro ao gerar CIOT: ", oResponse.mensagem
    ENDIF
RETURN

// #include "hbapi.h"

PROCEDURE main()
    LOCAL cUrl, cToken, cCnpj, cCpf, cOrigem, cDestino, cValor, cCIOT
    cUrl := "https://api.truckpad.io/v1/payments/ciot"
    cToken := "SEU_TOKEN_DE_AUTORIZACAO"
    cCnpj := "CNPJ_DO_EMITENTE"
    cCpf := "CPF_DO_TOMADOR"
    cOrigem := "CIDADE_ORIGEM"
    cDestino := "CIDADE_DESTINO"
    cValor := "VALOR_DO_FRETE"
    cCIOT := ""

    hb_curl_init()

    // Cria o header da requisição
    hb_curl_setopt( CURLOPT_HTTPHEADER, { "Content-Type: application/json", ;
                                           "Authorization: Bearer " + cToken } )

    // Cria o JSON de dados da requisição
    LOCAL cJsonData := '{ "cnpj": "' + cCnpj + '", ' + ;
                        '"cpf": "' + cCpf + '", ' + ;
                        '"origin": "' + cOrigem + '", ' + ;
                        '"destination": "' + cDestino + '", ' + ;
                        '"amount": "' + cValor + '" }'

    // Configura a URL e os dados da requisição
    hb_curl_setopt( CURLOPT_URL, cUrl )
    hb_curl_setopt( CURLOPT_POST, .T. )
    hb_curl_setopt( CURLOPT_POSTFIELDS, cJsonData )

    // Executa a requisição e retorna a resposta
    LOCAL cResponse := hb_curl_exec()
    hb_curl_cleanup()

    // Verifica se a requisição foi bem-sucedida e extrai o valor do CIOT
    IF hb_curl_getinfo( CURLINFO_RESPONSE_CODE ) == 201
        LOCAL oJson := JsonNew()
        JsonImport( oJson, cResponse )
        cCIOT := JsonGet( oJson, "ciot" )
        JsonRelease( oJson )
        ? "CIOT gerado com sucesso: " + cCIOT
    ELSE
        ? "Erro ao gerar o CIOT: " + cResponse
    ENDIF
RETURN
d:\temp>hbmk2 test
hbmk2: Processing environment options: -comp=mingw
hbmk2: Processing configuration: d:\harbour\bin\hbmk.hbc
Harbour 3.2.0dev (r2303091450)
Copyright (c) 1999-2021, https://harbour.github.io/
Compiling 'test.prg'...

test.prg:6: error E0030 Syntax error "syntax error at 'LOCAL'"
test.prg:7: warning W0002 Ambiguous reference, assuming memvar 'ODATA'
test.prg:8: warning W0002 Ambiguous reference, assuming memvar 'ODATA'
test.prg:9: warning W0002 Ambiguous reference, assuming memvar 'ODATA'
test.prg:10: warning W0002 Ambiguous reference, assuming memvar 'ODATA'
test.prg:11: warning W0002 Ambiguous reference, assuming memvar 'ODATA'
test.prg:12: warning W0002 Ambiguous reference, assuming memvar 'ODATA'
test.prg:13: warning W0002 Ambiguous reference, assuming memvar 'ODATA'
test.prg:14: warning W0002 Ambiguous reference, assuming memvar 'ODATA'
test.prg:15: warning W0002 Ambiguous reference, assuming memvar 'ODATA'
test.prg:16: warning W0002 Ambiguous reference, assuming memvar 'ODATA'
test.prg:17: warning W0002 Ambiguous reference, assuming memvar 'ODATA'
test.prg:18: warning W0002 Ambiguous reference, assuming memvar 'ODATA'
test.prg:20: error E0004 LOCAL declaration follows executable statement
test.prg:20: warning W0001 Ambiguous reference 'ODATA'
test.prg:20: warning W0001 Ambiguous reference 'CJSON'
test.prg:21: error E0004 LOCAL declaration follows executable statement
test.prg:21: warning W0001 Ambiguous reference 'OHEADERS'
test.prg:22: warning W0002 Ambiguous reference, assuming memvar 'OHEADERS'
test.prg:23: warning W0002 Ambiguous reference, assuming memvar 'OHEADERS'
test.prg:23: warning W0001 Ambiguous reference 'CTOKEN'
test.prg:24: error E0004 LOCAL declaration follows executable statement
test.prg:24: warning W0001 Ambiguous reference 'CJSON'
test.prg:24: warning W0001 Ambiguous reference 'OHEADERS'
test.prg:24: warning W0001 Ambiguous reference 'CRESULT'
test.prg:26: warning W0001 Ambiguous reference 'CRESULT'
test.prg:28: error E0004 LOCAL declaration follows executable statement
test.prg:28: warning W0001 Ambiguous reference 'CRESULT'
test.prg:28: warning W0001 Ambiguous reference 'ORESPONSE'
test.prg:29: error E0030 Syntax error "syntax error at '.'"
test.prg:30: error E0030 Syntax error "syntax error at '.'"
test.prg:31: error E0014 ELSE does not match IF
test.prg:32: error E0030 Syntax error "syntax error at '.'"
test.prg:33: error E0010 ENDIF does not match IF
test.prg:38: error E0030 Syntax error "syntax error at 'PROCEDURE'"
test.prg:53: warning W0001 Ambiguous reference 'CURLOPT_HTTPHEADER'
test.prg:60: error E0004 LOCAL declaration follows executable statement
test.prg:60: warning W0001 Ambiguous reference 'CJSONDATA'
test.prg:63: warning W0001 Ambiguous reference 'CURLOPT_URL'
test.prg:64: warning W0001 Ambiguous reference 'CURLOPT_POST'
test.prg:65: warning W0001 Ambiguous reference 'CURLOPT_POSTFIELDS'
test.prg:65: warning W0001 Ambiguous reference 'CJSONDATA'
test.prg:68: error E0004 LOCAL declaration follows executable statement
test.prg:68: warning W0001 Ambiguous reference 'CRESPONSE'
test.prg:72: warning W0001 Ambiguous reference 'CURLINFO_RESPONSE_CODE'
test.prg:73: error E0004 LOCAL declaration follows executable statement
test.prg:73: warning W0001 Ambiguous reference 'OJSON'
test.prg:74: warning W0001 Ambiguous reference 'OJSON'
test.prg:74: warning W0001 Ambiguous reference 'CRESPONSE'
test.prg:75: warning W0001 Ambiguous reference 'OJSON'
test.prg:76: warning W0001 Ambiguous reference 'OJSON'
test.prg:79: warning W0001 Ambiguous reference 'CRESPONSE'
14 errors
Muito erro? reduzir pra -w0
d:\temp>hbmk2 test -w0
hbmk2: Processing environment options: -comp=mingw
hbmk2: Processing configuration: d:\harbour\bin\hbmk.hbc
Harbour 3.2.0dev (r2303091450)
Copyright (c) 1999-2021, https://harbour.github.io/
Compiling 'test.prg'...

test.prg:6: error E0030 Syntax error "syntax error at 'LOCAL'"
test.prg:20: error E0004 LOCAL declaration follows executable statement
test.prg:21: error E0004 LOCAL declaration follows executable statement
test.prg:24: error E0004 LOCAL declaration follows executable statement
test.prg:28: error E0004 LOCAL declaration follows executable statement
test.prg:29: error E0030 Syntax error "syntax error at '.'"
test.prg:30: error E0030 Syntax error "syntax error at '.'"
test.prg:31: error E0014 ELSE does not match IF
test.prg:32: error E0030 Syntax error "syntax error at '.'"
test.prg:33: error E0010 ENDIF does not match IF
test.prg:38: error E0030 Syntax error "syntax error at 'PROCEDURE'"
test.prg:60: error E0004 LOCAL declaration follows executable statement
test.prg:68: error E0004 LOCAL declaration follows executable statement
test.prg:73: error E0004 LOCAL declaration follows executable statement
14 errors
Isso já mostra que o fonte tá uma merd.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

API para CIOT

Mensagem por JoséQuintas »

Colocando declaração LOCAL no lugar certo, que é no início.
d:\temp>hbmk2 test -w0
hbmk2: Processing environment options: -comp=mingw
hbmk2: Processing configuration: d:\harbour\bin\hbmk.hbc
Harbour 3.2.0dev (r2303091450)
Copyright (c) 1999-2021, https://harbour.github.io/
Compiling 'test.prg'...

test.prg:6: error E0030 Syntax error "syntax error at 'LOCAL'"
test.prg:30: error E0030 Syntax error "syntax error at '.'"
test.prg:31: error E0030 Syntax error "syntax error at '.'"
test.prg:32: error E0014 ELSE does not match IF
test.prg:33: error E0030 Syntax error "syntax error at '.'"
test.prg:34: error E0010 ENDIF does not match IF
test.prg:39: error E0030 Syntax error "syntax error at 'PROCEDURE'"
7 errors
erros.png

Continuação de linha mas sem continuação
Uso de ".", coisa que não existe no harbour
O if foi anulado e por isso erro de if/endif
e o erro de if/endif causou erro na declaração de procedure


Quando a gente vai no açougue.... ensina o açougueiro a cortar carne?
Quando a gente vai na farmácia... ensina o farmacêutico pra que servem os remédios?
Porque pra ajudar programador precisa ensinar a compilar ? não é estranho isso ?
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

API para CIOT

Mensagem por JoséQuintas »

E corrigindo os erros normais.... resta isto
hbmk2: Error: Referenced, missing, but unknown function(s): JSONTOSTR(),
HTTPPOST(), JSONTOOBJ(), HB_CURL_EXEC(), JSONNEW(), HB_CURL_INIT(),
HB_CURL_SETOPT(), HB_CURL_CLEANUP(), HB_CURL_GETINFO(), JSONIMPORT(),
JSONGET(), JSONRELEASE()
Já falado, CURL é da libcurl.
libcurl vai resolver isto:
HB_CURL_EXEC(), JSONNEW(), HB_CURL_INIT(), HB_CURL_SETOPT(), HB_CURL_CLEANUP(), HB_CURL_GETINFO()
O resto..... nunca vi, não existe no harbour.
JSONTOSTR(), HTTPPOST(), JSONTOOBJ(), JSONNEW(), JSONIMPORT(), JSONGET(), JSONRELEASE()
hbapi.h..... sei lá pra que merd. enfiaram isso aí no meio, não fez falta.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Responder