Ir para conteúdo
  • Cadastre-se

dev botao

Como substituir o funcao hb_StrToUTF8()


Ver Solução Respondido por José M. S. Junior,
  • Este tópico foi criado há 882 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

  • Moderadores
Postado

Está usando o demo de exemplo de uso da lib em Harbour, correto?

Essa função deve fazer a conversão da String para UTF8, creio que não precisaria ser exatamente essa, qualquer que faça essa conversão pode ser utilizada, para passar os parâmetros de chamada do método da dll.

Consultor SAC ACBr

José Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

  • Membros Pro
Postado (editado)

Bom dia,

Estou testando essa metodo que peguei no ACBR e nao estar retornando em branco:

FUNCTION Versao()
    local hResult, buffer, bufferLen
    bufferLen := STR_LEN
    buffer := Space(bufferLen)
    hResult := DllCall(hHandle, DLL_OSAPI, "NFE_Versao", @buffer, @bufferLen)
    atencao(buffer) // apresenta uma tela
    CheckResult(hResult)
    RETURN ProcessResult(buffer, bufferLen)
 

Editado por Helio Beltrao Jr.

Atenciosamente,
Helio Beltrão Jr.
[email protected]
www.htisistemas.com

 

 

  • Moderadores
Postado

A lib está sendo instanciada corretamente? A partir do momento que instancia é gerado o arquivo de configuração da lib no diretório, o arquivo é: "ACBrLib.ini" veja se está sendo gerado.

Também gera um arquivo de log onde pode validar o que a lib está recebendo e o que ela retornou.

Consultor SAC ACBr

José Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

  • Membros Pro
Postado (editado)

Pessoal,

Estava testando com o ACBRMONITORPLUS rodando mais depois que encerrei estar dando error a carregar a ACBRLIB.DLL o que estou fazendo de errado ?

#define ACBrLIB 'ACBrNFe32.dll'

hHandle := DllLoad(ACBrLIB)
    if ! EMPTY(hHandle)
        atencao("Erro a carregar a dll [" + ACBrLIB + "]")
    endif
 

Editado por Helio Beltrao Jr.

Atenciosamente,
Helio Beltrão Jr.
[email protected]
www.htisistemas.com

 

 

  • Consultores
Postado
2 minutos atrás, Helio Beltrao Jr. disse:

Estava testando com o ACBRMONITORPLUS rodando mais depois que encerrei estar dando error a carregar a ACBRLIB.DLL o que estou fazendo de errado ?

Qual a mensagem de erro?

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
  • Membros Pro
Postado (editado)

Boa noite,

Consegui carregar a ACBRLIB.DLL agora o problema e em alguns metodos dar error por exemplo:

FUNCTION Versao()
        local hResult, buffer, bufferLen
        bufferLen := STR_LEN
        buffer := Space(bufferLen)
        hResult := DllCall(hHandle, DLL_OSAPI, "NFE_Versao", @buffer, @bufferLen)
        IF hResult = -10
                atencao('<VERSAO> Indica que houve falhas na execução do método.')

                RETURN .F.
        ENDIF
        //CheckResult(hResult)
        RETURN buffer   //ProcessResult(buffer, bufferLen)
 

Editado por Helio Beltrao Jr.

Atenciosamente,
Helio Beltrão Jr.
[email protected]
www.htisistemas.com

 

 

  • Consultores
Postado
5 horas atrás, Helio Beltrao Jr. disse:

Você está usando o exemplo no nosso SVN?

https://svn.code.sf.net/p/acbr/code/trunk2/Projetos/ACBrLib/Demos/Harbour/NFe

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
  • Moderadores
Postado

Pela versão da dll que está no log, parece que está usando a dll CDECL, creio que na sua linguagem seja STDCALL. Faça um teste copiando a dll da pasta MT / STDCALL / 32bits.

Consultor SAC ACBr

José Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

  • Membros Pro
Postado

Aqui no Harbour uso a CDECL(MT) sem nenhum problema, agora @Helio Beltrao Jr. veja não esta usando DLL no padrão MT  já que a classe não esta preparada para isso , para usar MT teria que adicionar mais um parâmetro que seria o ponteiro.

  • Curtir 3
  • Moderadores
Postado
3 horas atrás, Helio Beltrao Jr. disse:

Bom dia,

Fiz os teste com os dois exemplo esse MT / STDCALL / 32bits. e CDECL da error no status do servico: Indica que houve erro ao consultar o status de serviço. utilizo o Xhabour 0.99

Qual o erro Helio? Se a lib está inicializando corretamente pode ser apenas configuração. Não utilizamos xHarbour aqui mas use a configuração indicada pelo colega @lucimauro. Comece realizando testes com métodos de configuração da lib ConfigGravarValor, ConfigGravar, ConfigLerValor... Esses métodos são utilizados para realizar a configuração da lib antes de enviar algum método da NFe:

https://acbr.sourceforge.io/ACBrLib/MetodosdeConfiguracao15.html

 

Anexe por favor o log.txt e a sua configuração ACBrLib.ini com os últimos testes.

Consultor SAC ACBr

José Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

  • Moderadores
  • Solution
Postado
1 hora atrás, Helio Beltrao Jr. disse:

Desculpe o que significa isso NFE_ConfigGravarValor(eSessao, eChave, sValor)

Estes métodos: GravarValor e LerValor você deve utilizar para alterar as configurações da lib ou ler alguma configuração da mesma depois de instanciá-la, correspondem a Sessão, Campo e Valor do arquivo ACBrLib.ini que deseja alterar ou ler. Ao utilizar os método ConfigGravar será atualizado o arquivo de configuração ACBrLib.ini com os valores passados utilizando o método GravarValor. (obs: O arquivo ACBrLib.ini não deve ser alterado manualmente e sim através desses métodos)

A inicializar a lib não precisa informar arquivo de configuração no parâmetro, deixe que a lib crie automaticamente no diretório raiz, assim evita erros, caso tenha configurado o arquivo manualmente.

https://acbr.sourceforge.io/ACBrLib/ConfiguracoesdaBiblioteca16.html

 

Eu sugiro que dê uma olhada no curso de Introdução da ACBrLib, nele é apresentado como ela funciona e como fazer as configurações, independente da linguagem que esteja usando.

Além disso é importante saber qual dll está usando (MT) ou (ST) pois os parâmetros mudam em cada caso e precisa implementar baseado nisso. E saber qual convenção deve usar na sua linguagem, mas tudo isso é explicado nas aulas, e pode facilitar o entendimento se está começando...

https://acbr.nutror.com/curso/e4f38b5c7398e4ccca8731c2d305952d389ac693

 

Consultor SAC ACBr

José Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

×
×
  • 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.