Bonjour à tous,

Je travail actuellement sur un projet sous Win CE 5.0 (Plateforme Colibri de chez Toradex)

J'ai un programme de démo en C qui me permet de controler les GPIO de la carte, fourni par Toradex.
Mon application globale est en C#, je cherche donc à créer une DLL pour utiliser les fonctions de ce controleur.

Je travail sous VS2005. J'ai créé un projet Visual C++ --> Smart Device --> Projet Smart Device Win32 dans lequel j'ai spécifié que je voulais créer une DLL. Il m'a donc créé un projet avec stdafx.c/.h contenant les variable pour WinCE et le fichier principal du projet ByteBusDLL.c.

J'ai importé les .c / .h de mon ancien projet. J'ai ajouté __declspec(dllexport) devant les fonctions. J'ai compilé ... aucun problème de compilation.


Dans mon projet C#, j'utilise cette DLL en important les fonction comme ceci:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
[DllImport("ByteBusDLL.dll")]
static extern unsafe void InitGPIO();
 
[DllImport("ByteBusDLL.dll")]
static extern unsafe void PutByteBus(uint dataBYTE); 
 
...

Je compile ... mais lorsque je teste le programme, dès que j'appelle la fonction InitGPIO(); ... j'obtient l'erreur :




Est ce que vous avez une idée d'où, cela peut venir ? Ai-je omis de faire quelque chose lors de la création de la DLL (j'ai lu les Tuto Interrop 1 et 2, j'ai essayé d'inclure Extern "C", mais VS2005 n'en veut pas) ?

PS : Je peux fournir le code C si nécessaire ....