2010-03-31 5 views
1

J'ai écrit une DLL wrapper pour certaines fonctions C++ natives et compilé en C++/CLI, puis j'ai ajouté une référence au projet C#, les fonctions l'indiquent, mais quand j'essaie de compiler le projet Je reçois cette erreur:C++/DLL CLI sur C# ne compile pas

Additional information: Could not load file or assembly 'lib, Version=1.0.3742.39593, Culture=neutral, PublicKeyToken=null' or one of its dependencies. An attempt was made to load a program with an incorrect format.

Quel est le problème?

Répondre

3

L'incompatibilité 64 bits vs 32 bits est la cause la plus fréquente de cette erreur.

Dans le Project settings page du projet C#, votre Platform target sera défini sur Any CPU. Cela signifie que sur un système 64 bits, le programme s'exécutera dans un processus 64 bits. Il sera alors impossible de charger les DLL qui ciblent 32 bits (les DLL natives ne peuvent pas basculer pour convenir au processus.)

Vous devez donc le définir sur x86. Dans VS2010, la valeur par défaut sera x86 pour les nouveaux projets.

+0

Le projet DLL et C# a été écrit en environnement 32 bits –

+1

Et le programme hôte C# est en cours de construction et d'exécution sur un système d'exploitation 32 bits? –

+0

non, il bult sur w2k3 x64. Est-ce que c'est un problème? –