2009-02-02 7 views
5

J'ai créé une DLL à l'aide de C++ géré. Maintenant j'essaye de l'employer de C#. J'ai ajouté l'objet aux références du projet. Le navigateur d'objets affiche l'objet dans la DLL correctement, le chemin d'accès à la DLL dans le navigateur d'objet correspond au chemin réel.Utilisation de la DLL C++ gérée à partir de C#

Cependant, quand je lance le programme C#, il se plaint:

Exception non gérée: System.IO.FileNotFoundException: Le module spécifié ne pas trouvé. (Exception de HRESULT: 0x8007007E)

Une idée de quoi d'autre doit-on faire?

Merci.

+0

Peut-on voir un code ici? –

Répondre

6

Je pense qu'il vous manque les autres assemblys ou les références dll par votre assembly C++ managé.

+0

True, l'une des DLL utilisées n'était pas sur le chemin. Merci. –

0

Votre assembly C++ géré possède-t-il d'autres dépendances, y compris des DLL non gérées? Vous verrez cette erreur à l'exécution si votre assembly référencé ne parvient pas à charger une dépendance.

0

Exécutez-vous l'application en version sur une machine sans VS installé?

Je demande seulement parce que je suis tombé sur un problème similaire ici: Mixed Mode Library and CRT Dependencies - HELP

si vous faites défiler vers le bas pour ma réponse que vous pouvez voir ce que je faisais cela m'a aidé.

0

Vérifiez que l'assembly C++ est présent dans le même dossier que votre programme C#. Il doit être copié automatiquement si la propriété 'Copy Local' est définie sur true (sur la référence à la DLL C++ dans votre application C#). Si la DLL C++ est là, le problème le plus probable est que la DLL C++ dépend d'une autre DLL non gérée qui ne peut être trouvée (C# ne les copiera pas dans votre dossier d'application car elle ne connait pas les références non gérées). Vous pouvez utiliser DependencyWalker sur la DLL C++ pour vérifier les dépendances manquantes.

Une autre erreur probable pourrait être un problème avec vos DLLs d'exécution MSVC. voir si DependencyWalker se plaint des fichiers MSVCR * .dll, MSVCP * .dll etc ... manquants.

Questions connexes