Bonjour tout le monde,
Mon but est de générer une dll en C++ afin de l'utiliser plus tard dans un prjet C#. J'ai suivi le tutto sur le lien suivant : http://nico-pyright.developpez.com/t...c2005/interop/
Dans le projet C++ qui génère la DLL j'utilise la librairie OpenCV et voici la configuration de mon projet C++ pour générer la DLL :
- C/C++ -> Génération de code -> Bibliotheque Runtime = DLL multithread (/MD)
- Editeur de liens -> Avancé -> Ordinateur cible = MachineX64(/MACHINE:X64)
- Propriétés -> Propriétés de configuration -> Répertoires VC++ -> Répertoires Include :
- C:\OpenCV\opencv\build\include
- C:\OpenCV\opencv\modules\core\include\opencv2\core
- C:\OpenCV\opencv\include\opencv2
- C:\OpenCV\opencv\include\opencv
- Propriétés -> Propriétés de configuration -> Répertoires VC++ -> Répertoires de bibliothèques :
- C:\OpenCV\opencv\build\x64\vc10\lib
- C:\OpenCV\opencv\build\x64\vc10\bin
- Propriétés -> Propriétés de configuration -> Répertoires VC++ -> Répertoires sources :
- C:\OpenCV\opencv\modules
- Propriétés -> Propriétés de configuration -> öditeur de liens -> entrée -> Dépendances supplémentaires :
- C:\OpenCV\opencv\build\x64\vc10\lib\opencv_core240d.lib
- C:\OpenCV\opencv\build\x64\vc10\lib\opencv_video240d.lib
- C:\OpenCV\opencv\build\x64\vc10\lib\opencv_ml240d.lib
- C:\OpenCV\opencv\build\x64\vc10\lib\opencv_legacy240d.lib
- C:\OpenCV\opencv\build\x64\vc10\lib\opencv_imgproc240d.lib
- C:\OpenCV\opencv\build\x64\vc10\lib\opencv_highgui240d.lib
La génération de la DLL se passe bien et elle est destiné pour un système 64 bits.
Voici la configuration de mon projet C# :
- Propriétés -> Générer -> Plateforme = (x86) active
- Propriétés -> Générer -> Général -> Plateforme cible = x64
Ensuite, je la DLL générer dans le répertoire avec l'exécutable C# et à l'exécution j'ai l'erreur que vous trouverez dans l'image jointe :
Généralement cette erreur est un conflit entre 32 bits et 64 bits, mais je vois pas comment la corriger!! quelqu'un aura une idée comment la corriger ??
Sachant que la configuration d'OpenCV est a priori faite pour un système x64 et que quand j'utilise pas OpenCV dans la DLL générer l'utilisation dans C# fonctionne. donc j'imagine que l'erreur est de côté OpenCV mais je vois pas ou ??
Merci d'avance.
Partager