Appeler une DLL C en Csharp

Messages postés
3
Date d'inscription
jeudi 14 décembre 2006
Statut
Membre
Dernière intervention
26 octobre 2010
- - Dernière réponse : cs_bananito
Messages postés
3
Date d'inscription
jeudi 14 décembre 2006
Statut
Membre
Dernière intervention
26 octobre 2010
- 21 oct. 2010 à 22:08
Bonjour à tous,
Je cherche a appeler une DLL en C depuis Csharp.

J'ai 2 fonctions a appeler

  __declspec(dllexport) void fonction1 (char* filepath);

  __declspec(dllexport)char* Fonction2 (char* hexstrin);


Et voici comment je les appele en Csharp

[DllImport("madll.dll")]
public unsafe static extern char* fonction1([MarshalAs(UnmanagedType.LPStr)] string hexstrin);

[DllImport("madll.dll", CharSet = CharSet.Ansi)]
        //string GetDir(StringBuilder filepath); 
        public static extern void fonction2(string filepath);




Malheuresement le compilateur me remvoie toujours une erreur du type " un appel a la fonction "fonction1.." a déséquilibré la pile...

Savez vous d'ou vient le probleme?

Votre aide me serait très precieuse :-)

Merci
Afficher la suite 

4 réponses

Messages postés
1160
Date d'inscription
vendredi 23 juillet 2004
Statut
Membre
Dernière intervention
21 octobre 2010
13
0
Merci
Peut-être parce que tu as inversé les types de retour de tes 2 fonctions?
Commenter la réponse de leprov
Messages postés
3
Date d'inscription
jeudi 14 décembre 2006
Statut
Membre
Dernière intervention
26 octobre 2010
0
Merci
Je pense aussi que c est un probleme de type mais je vois pas ce qu il faut mettre, as tu une idée?
Commenter la réponse de cs_bananito
Messages postés
1160
Date d'inscription
vendredi 23 juillet 2004
Statut
Membre
Dernière intervention
21 octobre 2010
13
0
Merci
As tu lu ce que j'ai écrit? le mot important était "inversé". En C ta fonction1 ne retourne rien, et en C# tu spécifie qu'elle retourne un char*, et tu fais l'inverse pour ta fonction2
Commenter la réponse de leprov
Messages postés
3
Date d'inscription
jeudi 14 décembre 2006
Statut
Membre
Dernière intervention
26 octobre 2010
0
Merci
Merci pour ta réponse en fait j ai trouvé la solution a mon problème en suivant ces examples
http://www.drdobbs.com/184406285;jsessionid=354EG0ECRTYW3QE1GHOSKHWATMY32JVN

:P
Commenter la réponse de cs_bananito