-1

Je développe une application .NET C++. J'utilise un capteur d'empreintes digitales dont la bibliothèque principale ne fonctionne que sur 32bits, et a beaucoup de dépendances, l'une d'entre elles est msvcr110.dll. Je sais que cette DLL est livrée avec VS C++ Redistributable Package 2012, donc je l'ai installée. Toutefois, lorsque j'exécute l'application, j'obtiens une exception BadImageFormat. J'ai ouvert la DLL avec Dependency Walker, et j'ai vu qu'il trouve msvcr110.dll/msvcr110d.dll sur le dossier de Windows/System32, mais dans Dependency Walker la DLL apparaît avec le format 64 bits. Cela n'a aucun sens pour moi, car il a été chargé à partir du dossier System32.BadImageFormatException sur l'application 32 bits fonctionnant sur un PC 64 bits

Si j'ouvre msvcr110.dll avec Dependency Walker, il apparaît comme 32bit. Pourquoi quand le capteur de l'empreinte digitale charge la bibliothèque, la charge-t-elle en 64 bits?

Des idées pour résoudre ce problème? Merci beaucoup

+0

N'êtes-vous pas victime de la redirection 32 bits? En savoir plus sur 'Wow64DisableWow64FsRedirection'. Si vous pouvez repérer et contrôler le point exact où le chargement est en cours, vous pouvez désactiver la redirection, puis, une fois le chargement terminé, vous pouvez revenir en arrière. – sergiol

Répondre

-1

Merci pour votre réponse :) Enfin, je prends la voie rapide et j'ai installé Visual Studio 2012 afin d'obtenir msvcr110d.dll. Ensuite, j'ai copié les deux DLLs à mon chemin de programme, et cela a fonctionné ... Mais oui, votre option semble mieux car il ne nécessite pas d'utiliser les DLL de débogage.

+0

Non. Donc le problème n'était pas ce que je soupçonnais. Peut-être que votre installation a été corrompue. – sergiol