J'utilise DllImport pour accéder à certaines fonctions dans une DLL C++ de mon application C#.Win 7 DllImport C# Erreur étrange, Accès non valide à l'emplacement de la mémoire?
Ce code fonctionne très bien sur mon ordinateur portable dev, qui est Windows 7 64bit, la DLL elle-même est de 32 bits, donc je cours le processus d'hébergement de la DLL en 32 bits et ça fonctionne bien. Cependant, quand j'essaie d'exécuter exactement le même processus sur ma machine cible, ce qui est encore, Windows 7 64bit Ultimate je reçois l'erreur 'Accès invalide à l'emplacement de la mémoire.' du processus.
Je ne sais pas quel est le problème, j'ai regardé des tonnes de ressources sur le net et aucun d'entre eux ne l'a résolu pour moi. Je ne comprends pas pourquoi cela fonctionne bien sur ma boîte de dev, mais pas sur la cible?
La DLL elle-même est très bien, les exemples qui viennent avec la DLL fonctionnent tous très bien sur ma boîte cible (qui sont des applications C# DllImport).
Est-ce que quelqu'un d'autre a eu ce problème? Je me suis battu pendant deux jours maintenant!
Exception: {"Unable to load DLL 'CLEyeMulticam.dll': Invalid access to memory location. (Exception from HRESULT: 0x800703E6)"}
DEP est comme OptIn (qui est essentiellement DEP activé) sur ma boîte de développement. Mais cela n'a aucun problème ... J'ai essayé de trouver des différences, mais j'ai mis les deux machines avec la même ISO, à la fois avec VS2010, Robotics Framework RC3, et le même Dll j'essaie d'accéder. Mais essayez comme je pourrais, je ne peux pas obtenir cette nouvelle machine pour obtenir un cadre de robotique lisant la DLL correctement !! – James
J'ai également essayé de reformater totalement la machine, j'ai toujours le même problème. – James
Je n'ai pas réussi à résoudre ce problème. Cela n'est arrivé que lors de l'utilisation de la DLL dans Microsoft Robots Studio. À la fin, j'ai dû créer une nouvelle application pour héberger la DLL, et communiquer des processus croisés via les canaux nommés WCF :( – James