une tentative a été faite pour charger un programme avec un format incorrect exception avec VS d'installation
J'ai conçu un Windows en C# appln qui appelle également à l'interne certaines fonctions [importés de DLL C++ par DllImport()]
Mon code C++ est construit comme .DLL dans la plate-forme Win32 alors que mon C# est construit comme "any CPU" la plate-forme.
Quand je lance le .EXE (C#) dans ma machine de test, je fais face à une erreur
une tentative a été faite pour charger un programme avec un format incorrect
exception de hresult 0x8007000B
Toutefois, cette erreur n'est pas confronté si j'installe VSS 2010 dans mon ordinateur, puis exécutez le fichier EXE.
1) la Raison de cette erreur?
2) pourquoi l'erreur n'est pas observée lorsque VSS est installé?
J'ai utilisé Win7 OS(64bit) pour construire la .EXE (C#) dans AnyCPU plate-forme qui dépend à son tour d'une DLL C++ Dll importés en C# à l'aide de DllImport) construit en Win32
Quelqu'un peut-il svp aider?
Veuillez mettre à jour votre question à inclure l'OS .dll du nombre de bits et .exe nombre de bits. En outre, vérifiez vos paramètres de construction de la force et de la .Net part pour correspondre le nombre de bits de votre .dll.
Je les ai vérifié tous mes réglages et ont mis à jour ci-dessus. pl laissez savoir:
Ce sur la machine que vous utilisez? Notez que Win32 est juste le nom du faible niveau de l'API Windows et qu'il n'est pas Win64, bien qu'une application Win32 peut être compilé en 64 bits .exe.
OriginalL'auteur stack_pointer is EXTINCT | 2012-09-18
Vous devez vous connecter pour publier un commentaire.
C'est presque toujours parce que vous êtes à l'appel de code 32 bits de 64 bits dll/exe,etc ou 64 bits dll à partir d'une dll 32 bits. Qu'advient-il si vous générez le c# pour x86? Il sera toujours exécuté sur 64 bits.
N'importe quel CPU signifie que le cadre sera de déterminer si les courir comme 64 ou 32 bits au démarrage de l'application. Je me serais attendu à la machine de test à 64 et donc de ne pas être en mesure d'appeler le 32-bit dll c++ lors de l'exécution.
Dll est construit comme Win32 et EXE est construit comme une unité centrale plate-forme (VSS) sur un x86bit machine où VS est installé. Maintenant, la machine de Test a version x86 de système d'exploitation, où l'application est en cours d'exécution. D'où, 64 bits, est de tangage lors que tout est x86.
ou en appelant le 64 bits dll à partir de 32 bits de code
OriginalL'auteur Rob Allen