Ir para conteúdo
  • Cadastre-se

dev botao

  • Este tópico foi criado há 3540 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

  • Membros Pro
Postado

Boa tarde,

 

Tive alguns problemas com a impressora ECF da Bematech. Quando é executada a rotina AbrePortaSerialDLL dá um RiseEception na linha 3531.

Este erro ocorre devido a forma como é criada a variável INI na linha 3529, nesta linha está sendo passado o parâmetro IniFile, sem o Path, mudando o parâmetro  para aPath+IniFile, não deu mais o erro.

 

A linha  3529 do arquivo ACBrECFBematech, ficou assim

Ini := TIniFile .Create( aPath+IniFile );

 

Veja se é possível a correção no componente para evitar problemas futuros.

 

  • 2 semanas depois ...
  • Membros Pro
Postado

Fiz a atualização e continua com o mesmo problema. Para funcionar corretamente, a linha 3529 do arquivo ACBrECFBematech.pas tem que ficar assim Ini:= TInifile .Create( aPath+IniFile) ;

  • Fundadores
Postado

Ademar,

 

Creio que a modificação não possa ser aplicada, pois pode quebrar aplicações existentes... e pelo que analisei, o nome do INI está sendo atribuído corretamente

   {$IFDEF CPU64}
    IniFile := ExtractFilePath( PathDLL )+'BemaFi64.INI' ;
   {$ELSE}
    IniFile := ExtractFilePath( PathDLL )+'BemaFi32.INI' ;
   {$ENDIF}

O INI deve ficar na mesma pasta da DLL, e as linhas acima, garantem isso...

 

Se mudarmos para o proposto:

 Ini := TIniFile.Create( aPath+IniFile );

O INI será criado no diretório de destino, informado pelo programador, no momento da geração do arquivo...

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

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

  • Membros Pro
Postado

Ok, Daniel,

 

Não quero causar outros problemas, mas no meu caso não tem como deixar como está, pois da erro de AcessViolation.

 

Para evitar o problema que você citou, e corrigir o problema de AcessViolation, poderia ser usada a variável PathDLL na chamada do procedimento ConfiguraBenaFI32Iini, ai ficaria assim:

 

Ini := TiniFile.Create( PathDLL+IniFile );

 

É só uma sugestão, avalie a possibilidade.

 

Obrigado.

  • Fundadores
Postado

Eu não vejo como essa sugestão, ou a anterior, poderia corrigir um Access Violation...  Não temos relatos de outros usuários tendo A.V. nesse código...

 

A.V. ocorre quando tentamos acessar um objeto que nunca existiu ou que já foi destruído... Qual é a sua analise para o problema estar ocorrendo ? E como a sua correção pode solucioná-lo ?

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

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

  • Este tópico foi criado há 3540 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

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