Ir para conteúdo
  • Cadastre-se

Marcelo Wanderley

Membros
  • Total de ítens

    24
  • Registro em

  • Última visita

Tudo que Marcelo Wanderley postou

  1. Antonio, segue em anexo o fontes testeACBR.zip
  2. Pode ser ref.refType('string') também. faltava declarar como tipo para declarar na lib.
  3. Pessoal, consegui. Segue abaixo a solução funcionando. Obrigado a todos pela atenção. const path = require('path'); const ffi = require('ffi-napi'); const ref = require('ref-napi'); const pathDllACBrLibCEP = path.join(__dirname, 'ACBrCEP64.dll') var eArqConfig = path.join(__dirname, 'ACBrLib.ini'); var eChaveCrypt = ''; var tint = ref.refType('int'); var tchar = ref.refType('char *'); var lib = ffi.Library(pathDllACBrLibCEP, { CEP_Inicializar: ['int', ['string', 'string']], CEP_Finalizar: ['int', []], CEP_BuscarPorCEP: ['int', ['string', tchar, tint]], }) try { var inicio = 2; const buflength = 256; let aloc_sResposta = Buffer.alloc(buflength); let aloc_esTamanho = ref.alloc('int', buflength); inicio = lib.CEP_Inicializar(eArqConfig, eChaveCrypt); console.log(`iniciou >>>>>>> ${inicio}`); inicio = lib.CEP_BuscarPorCEP('55612-450', aloc_sResposta, aloc_esTamanho); console.log(`ultmio retorno >>>>>>>> ${inicio}`); console.log(`Retorno: `, aloc_sResposta.toString()); inicio = lib.CEP_Finalizar(); console.log(`finalizar >>>>>>>> ${inicio}`); } catch (error) { console.error('An error occurred:', error) }
  4. Ainda sem sucesso.
  5. Testamos em outra máquina e ocorre o mesmo problema
  6. O que significa Access violation? 16/06/23 18:20:54:698 - SetRetorno(-10, Access violation)
  7. Em javascript e node não necessita do @ Aumentei e nada. Coloquei 512 Vou tentar em outra maquina.
  8. Log 16/06/23 18:20:54:063 - TLibCEPConfig.AplicarConfiguracoes: C:\Users\sistemas\Desktop\Projeto\qualinfo\testeACBR\ACBrLib.ini 16/06/23 18:20:54:066 - Travar 16/06/23 18:20:54:067 - TLibCEPConfig.AplicarConfiguracoes - Feito 16/06/23 18:20:54:068 - Destravar 16/06/23 18:20:54:070 - TLibCEPConfig.Ler - Feito 16/06/23 18:20:54:071 - Destravar 16/06/23 18:20:54:164 - LIB_Inicializar( C:\Users\sistemas\Desktop\Projeto\qualinfo\testeACBR\ACBrLib.ini, ) 16/06/23 18:20:54:258 - ACBrLibCEP Demo - 0.0.1.135 16/06/23 18:20:54:350 - CEP_BuscarPorCEP( 55612450 ) 16/06/23 18:20:54:352 - Travar 16/06/23 18:20:54:696 - Destravar 16/06/23 18:20:54:698 - SetRetorno(-10, Access violation) 16/06/23 18:20:54:701 - LIB_Finalizar 16/06/23 18:20:54:702 - Finalizar
  9. Fizemos isso também
  10. Olá Renato obrigado pela atenção. Estou fazendo assim. const path = require('path'); const ffi = require('ffi-napi'); const ref = require('ref-napi'); const pathDllACBrLibCEP = path.join(__dirname, 'ACBrCEP64.dll') var eArqConfig = path.join(__dirname, 'config.ini'); var eChaveCrypt = ''; var lib = ffi.Library(pathDllACBrLibCEP, { CEP_Inicializar: ['int', ['string', 'string']], CEP_Finalizar: ['int', []], CEP_BuscarPorCEP: ['int', ['string', 'string', 'int']], }) try { var inicio = 2; const buflength = 256; let aloc_sResposta = Buffer.alloc(buflength); let aloc_esTamanho = ref.alloc('int', buflength); inicio = lib.CEP_Inicializar(eArqConfig, eChaveCrypt); console.log(`iniciou >>>>>>> ${inicio}`); inicio = lib.CEP_BuscarPorCEP('55612450', aloc_sResposta, aloc_esTamanho); console.log(`ultmio retorno >>>>>>>> ${inicio}`); console.log(`Retorno: `, aloc_sResposta.toString()); inicio = lib.CEP_Finalizar(); console.log(`finalizar >>>>>>>> ${inicio}`); } catch (error) { console.error('An error occurred:', error) } Obrigado pela atenção Antonio. Não entendo porque não funciona conosco
  11. consegui fazer carregar o OPENssl, porém agora esta mostrando outro erro. Segue o log abaixo. 16/06/23 17:26:08:629 - TLibCEPConfig.AplicarConfiguracoes: C:\Users\sistemas\Desktop\Projeto\qualinfo\testeACBR\config.ini 16/06/23 17:26:08:629 - Travar 16/06/23 17:26:08:638 - TLibCEPConfig.AplicarConfiguracoes - Feito 16/06/23 17:26:08:638 - Destravar 16/06/23 17:26:08:646 - TLibCEPConfig.Ler - Feito 16/06/23 17:26:08:650 - Destravar 16/06/23 17:26:08:650 - LIB_Inicializar( C:\Users\sistemas\Desktop\Projeto\qualinfo\testeACBR\config.ini, ) 16/06/23 17:26:08:654 - ACBrLibCEP Demo - 0.0.1.134 16/06/23 17:26:08:662 - CEP_BuscarPorCEP( 55612450 ) 16/06/23 17:26:08:662 - Travar 16/06/23 17:26:09:201 - Destravar 16/06/23 17:26:09:201 - SetRetorno(-10, Access violation) 16/06/23 17:26:09:201 - LIB_Finalizar 16/06/23 17:26:09:209 - Finalizar
  12. É necessário estar consegue testar usando x64?
  13. A nossa aplicação é x64 Testamos x86 e um erro é mostrado como abaixo. ERROR (lunar/33764): Dynamic Linking Error: Win32 error 193 err: { "type": "Error", "message": "Dynamic Linking Error: Win32 error 193", "stack": Error: Dynamic Linking Error: Win32 error 193
  14. Log abaixo. A libssl-1_1-x64.dll já esta na mesma pasta do ACBrCEP64.dll. Onde deve ser instalado? 16/06/23 11:56:11:284 - LIB_Finalizar 16/06/23 11:56:11:287 - Finalizar 16/06/23 11:57:38:411 - TLibCEPConfig.AplicarConfiguracoes: C:\Users\marce\Desktop\Projeto\Lunar\software\providers\AcbrProvider\config.ini 16/06/23 11:57:38:414 - Travar 16/06/23 11:57:38:416 - TLibCEPConfig.AplicarConfiguracoes - Feito 16/06/23 11:57:38:418 - Destravar 16/06/23 11:57:38:419 - TLibCEPConfig.Ler - Feito 16/06/23 11:57:38:421 - Destravar 16/06/23 11:57:38:424 - LIB_Inicializar( C:\Users\marce\Desktop\Projeto\Lunar\software\providers\AcbrProvider\config.ini, ) 16/06/23 11:57:38:426 - ACBrLibCEP Demo - 0.0.1.134 16/06/23 11:57:38:429 - CEP_BuscarPorCEP( 55612-450 ) 16/06/23 11:57:38:431 - Travar 16/06/23 11:57:38:464 - Destravar 16/06/23 11:57:38:466 - SetRetorno(-10, Erro HTTP: 500 Socket Error: 10091 Error loading OpenSSL lib URL: https://brasilapi.com.br/api/cep/v2/55612450 Resposta HTTP: ) 16/06/23 11:57:38:469 - LIB_Finalizar 16/06/23 11:57:38:472 - Finalizar
  15. Coloquei a Dep na pasta e ainda não funcionou. Como faço para emitir log ? Trabalhamos com Nodejs usamos a biblioteca ffi-napi para encapsular dll em nossas aplicações. Ela tem suporte a Cdecl ou StdCall. Tentamos utilizar até a versão da Lib MT e nada.
  16. Como faço para ele gerar log? Ele não esta gerando.
  17. Olá Carlos, Obrigado pela atenção. Sim, configuramos o config.ini [CEP] WebService=15 ChaveAcesso= Usuario= Senha= PesquisarIBGE=0 Estamos lendo a documentação, já faz alguns dias que estamos tentando fazer funcionar e não conseguimos. Acreditamos que a lib não chega a consultar no webservices, pois a resposta -10 é rapidamente exibida. Já tentamos com todos os webservices. Poderia nos auxiliar.
  18. Estamos usando essa versão StdCall
  19. Sempre retornar -10 Não consigo imaginar o que posso fazer para funcionar. import * as ffi from 'ffi-napi'; import * as ref from 'ref-napi'; import * as path from 'path'; export default class Services { // @ts-ignore private lib: any constructor() { const dllPath = path.join(__dirname, 'ACBrCEP64.dll'); const stringPtr = ref.refType(ref.types.CString); this.lib = ffi.Library(dllPath, { 'CEP_Inicializar': ['int', ['string']], 'CEP_Finalizar': ['int', []], 'CEP_BuscarPorCEP': ['int', ['string', stringPtr, 'int']], }); } public async CEP_BuscarPorCEP () { await this.lib.CEP_Inicializar(path.join(__dirname, 'config.ini')) const buffer = Buffer.alloc(256); const cep = '55612450'; const ret = this.lib.CEP_BuscarPorCEP(cep, buffer, buffer.length); this.lib.CEP_Finalizar() if (ret === 0) { const sResposta = ref.readCString(buffer, 0); return sResposta; } else { throw new Error('CEP_BuscarPorCEP failed with error code ' + ret); } } }
  20. Estamos usando a versão single thread
  21. Sem sucesso. Fiz uma atualização no código e mesmo assim nada. Código atualizado abaixo. import * as ffi from 'ffi-napi'; import * as ref from 'ref-napi'; import * as path from 'path'; export default class Services { // @ts-ignore private lib: any constructor() { const dllPath = path.join(__dirname, 'ACBrCEP64.dll'); const configPath = path.join(__dirname, 'config.ini'); const stringPtr = ref.refType(ref.types.CString); this.lib = ffi.Library(dllPath, { 'CEP_Inicializar': ['int', ['string']], 'CEP_BuscarPorCEP': ['int', ['string', stringPtr, 'int']], }); this.lib.CEP_Inicializar(configPath) } public async CEP_BuscarPorCEP () { // Criar um buffer para armazenar a resposta. const buffer = Buffer.alloc(256); const cep = '55612450'; const ret = this.lib.CEP_BuscarPorCEP(cep, buffer, buffer.length); // Verificar se a chamada foi bem sucedida. if (ret === 0) { // Converter o buffer de resposta em uma string e imprimir no console. const sResposta = ref.readCString(buffer, 0); console.log(sResposta); return sResposta; } else { throw new Error('CEP_BuscarPorCEP failed with error code ' + ret); } // return __dirname } }
  22. Estamos usando o config.ini que a própria lib criou.
  23. Olá a todos, espero que estejam bem. Estamos enfrentando alguns problemas ao tentar utilizar a biblioteca (Lib) CEP em nosso projeto e ainda não conseguimos utilizá-la corretamente. Já utilizamos outras DLLs em nosso projeto com sucesso, mas estamos enfrentando dificuldades ao tentar testar o da ACBr. Se alguém puder oferecer ajuda, ficarei imensamente grato. A inicialização é feita, porém no momento da consulta uma mensagem é mostrada -10 config.ini [CEP] WebService=wsRepublicaVirtual ChaveAcesso= Usuario= Senha= PesquisarIBGE=0 -10 Indica que houve erro ao consultar pelo numero do CEP no ACBrCEP. const ffi = require('ffi-napi'); const path = require('path'); export default class Services { // @ts-ignore private lib: any constructor() { const dllPath = path.join(__dirname, 'ACBrCEP64.dll'); const configPath = path.join(__dirname, 'config.ini'); this.lib = ffi.Library(dllPath, { 'CEP_Inicializar': ['int', ['string']], 'CEP_BuscarPorCEP': ['int', ['string']], }); this.lib.CEP_Inicializar(configPath) } public async CEP_BuscarPorCEP () { return this.lib.CEP_BuscarPorCEP('55612-450') // return __dirname } } Em node nós utilizamos
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.