Jump to content

Delphi chamada_delphi.png acbr.png

C6 chamada_c6.png botao.png

Recompilando Acbrframework32.dll No Lazarus


Go to solution Solved by FabricioPAraujo,
  • Este tópico foi criado há 3380 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Sistema: Windows 7 64 Home Basic

Lazarus: 1.0.4

As custom options do compilador: -dCONSOLE -dFRAMEWORK -dCDECL

 

O fonte da ACBr que eu usei precisa ser atualizado,  mas primeiro preciso fazer isso funcionar.

Eu recompilei a DLL (com o ACBrFramework32.lpi) e as option indicam que a convenção de chamada

é CDECL.

 

Quando eu usei a DLL antiga (28/11) tudo funciona blz (mas sem a minha interop da AcbrETQ e a função EnviaComando da ECF), mas com a nova DLL tudo voa (access violation no VS2010).

 

Qual é o pulo do gato?

 

 

 

Link to comment
Share on other sites

Não entendi a questão.

 

Você consegue compilar a ACBrFramework32.dll ?

 

Access violation exatamente onde? O ACBrFramework.Net compila corretamente?

 

ACBrETQ?

 

(...)

 

Coisas que talvez te ajude:

 

A dll nativa ACBrFramework32.dll e ACBrFramework64.dll só compilam em CDECL agora. A versão STDCALL foi descontinuada em favor com COM Interop com C# (vide outro post sobre isso)

 

A ACBrFramework.Net.dll coloca a dll nativa como um recurso embutido nela, e a utiliza em tempo de execução. Dessa forma não precisa distribuir a DLL nativa e a DLL .Net, apenas um arquivo contempla os dois. Cuidado com alguma versão antiga da DLL nativa em seu PATH, pois o SO vai usar esta ao invés da versão embutida.

 

Qualquer alteração na dll nativa, você deve recompilá-la e recompilar a dll .Net depois.

(de vez em quando o VS mantém a DLL nativa em uso o que impede da runtime atualizar a versão recém compilada. Nesses casos só fechando e reabrindo o VS)

 

Em máquinas com SO 64bits, você deve compilar seu executável para x86 (ao invés de AnyCPU), pois senão ele não é capaz de carregar a DLL nativa de 32bits.

 

Abs,

Rafael Batiati

ACBrFramework - Automação comercial para todos.

MultiClubes - Soluções para a área de clubes, parques, lazer e entretenimento.

Link to comment
Share on other sites

É, nesse caso não temos muito o que fazer.

Deve ter sido alguma modificação que você fez nos fontes que incompatibilizou com as versões mais novas.

 

(...)

 

Deixa eu dar uma sugestão:

 

Se você baixar os fontes originais do ACBr e ACBrFramework conforme o SVN, compilar tudo sem as modificações e rodar o ECFTeste por exemplo, funciona?

Se funcionar, suas modificações causaram algum problema, basta você revisá-las para implementar novamente de acordo.

Se não funcionar, é coisa de ambiente, pode ser sua máquina ou alguma coisa instalada errado.

 

(...)

 

Para evitar esse trabalho de revisão em caso de incompatibilidades, eu encorajo fortemente os usuários a compartilhar as alterações feitas aqui no fórum. Assim nós podemos incorporá-las ao SVN e mantê-las funcionando sempre.

 

Abs

Rafael Batiati

ACBrFramework - Automação comercial para todos.

MultiClubes - Soluções para a área de clubes, parques, lazer e entretenimento.

Link to comment
Share on other sites

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

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.