Jump to content
jmourao

c# ao utilizar .dll em c/c++ dá erro - Cartão do Cidadão

Recommended Posts

jmourao

Boa tarde,

estou a fazer uma aplicação que utiliza o cartão de cidadão, o programa já está completo, quando faço build da aplicação no modo debug corre tudo sem problemas, mas caso faça em modo Release a aplicação compila sem problemas e erros, abro a aplicação e ao tentar aceder a uma função desse .dll o programa estoira dando o erro:

"Attempted to read or write protected memory. This is often an indication that other memory is corrupt. "

Resumindo:

estou a programar em c#, a .dll é em C ou C++(é a fornecida para aplicações que usem o cartão do Cidadão) em modo debug o programa funciona impecavelmente mas em Release simplesmente crasha ao tentar usar uma função dessa .dll e mostra o erro acima.

Cumprimentos e obrigado em avanço

Share this post


Link to post
Share on other sites
jmourao

Bom dia,

novamente e apos muito esforço já consegui resolver a situação, para a posterioridade fica aqui o meu metodo de resolução,

após ter o programa a correr em debug, utilizar o depends.exe (dependecy walker) para ver quais as .DLL que são necessárias para a aplicação correr em outras maquinas, todas as .DLL que estejam com um ponto de interrogação a amarelo, façam um find na maquina em que a aplicação corre e copiem para a pasta release até que já não haja .dll a amarelo no Depends.exe

e esta solução funcionou para mim

Obrigado e Cumprimentos

João Mourão

Share this post


Link to post
Share on other sites

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

By using this site you accept our Terms of Use and Privacy Policy. 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.