Jump to content

dev botao

Recompilando Acbrframework32.dll No Lazarus


Go to solution Solved by FabricioPAraujo,
  • Este tópico foi criado há 4140 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á 4140 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.

The popup will be closed in 10 seconds...