kyfranBibax
Messages postés26Date d'inscriptionmercredi 11 mai 2005StatutMembreDernière intervention 6 janvier 2008
-
2 juin 2005 à 13:01
kyfranBibax
Messages postés26Date d'inscriptionmercredi 11 mai 2005StatutMembreDernière intervention 6 janvier 2008
-
3 juin 2005 à 12:06
Coucou,
Je commence à bien m'amuser en c# mais il faut tout de même que j'utilise des dll écrites en c++.
Mon problème est que j'appelle une fonction de ma dll à partir de mon prog c# avec :
//déclaration de la fonction
[DllImport("CreatePal.dll")]
private static
extern int GenPal(string fileInput,string fileOutput, int colors);
et
int i = GenPal(@"C:\Documents and Settings\franck\Bureau\FR.bmp", @"C:\Documents and Settings\franck\Bureau\FR.pal",128)
Lors de la compilation, pas de problème...
Mais lors de l'execution, j'obtiens une exception de type : ReferenceNullException lors de l'appel de la fonction.
Je voudrai donc savoir si cette exception est dûe à mon appel (pb de type peut-être???) ou à une erreur dans ma Dll.
Pouvez vous me dire si le code de ma dll ne pose pas trop de problème
(je suis à peu près au niveau débutant alors vous comprenez...).
cosmobob
Messages postés700Date d'inscriptionmardi 30 décembre 2003StatutMembreDernière intervention27 janvier 20094 2 juin 2005 à 17:00
salut,
dans ce que tu as dit, tu n'as pas donné le code de ta méthode GeneratePalette.
es tu egalement sur de pouvoir utiliser des CString depuis l'extérieur
?? (comment reussis tu a utiliser en c# une fonction c++ prenant des
CString alors que ce type est spécifique au c++ sauce microsoft) ?
tu
devrais mettre un type generique comme char* ... dans ton prog c#, la
conversion des strings en char* a plus de chances de se faire que celle
entre les string c# et les CString c++.
tchoucky
Messages postés48Date d'inscriptionlundi 17 novembre 2003StatutMembreDernière intervention 1 septembre 20062 2 juin 2005 à 14:32
"[DllImport("CreatePal.dll")]" signifie que ta dll doit se trouver soit
dans le repertoire de generation de ton appli c# soit dans un des
repertoire de reference de ton projet, est-ce le cas?
tchoucky
Messages postés48Date d'inscriptionlundi 17 novembre 2003StatutMembreDernière intervention 1 septembre 20062 2 juin 2005 à 15:10
Je suis desolé mais les dll que je crée en c sont bcp plus simple.
Avec visual studio 6, je crée un nouveau projet "library" et il me
génère un .def ou j'ajoute juste les noms des fonctions que je veux
exporter mais sans signature. Je ne peux faire de surcharge mais bon c
pas bien grave...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Je dois avouer que ce n'était pas le seul bug mais trouver celui-ci m'a permis de trouver les autres par la suite.
Mon NullReferenceException n'était pas dûe à cela mais à une
initialisation de variable. Je l'initai à NULL et je ne sais pourquoi,
j'ai dû supprimer sa mise en valeur.