gilch
Messages postés18Date d'inscriptionsamedi 6 septembre 2003StatutMembreDernière intervention15 avril 2013
-
2 mars 2010 à 16:24
gilch
Messages postés18Date d'inscriptionsamedi 6 septembre 2003StatutMembreDernière intervention15 avril 2013
-
3 mars 2010 à 16:58
Bonjour,
j'ai utilisé avec succes une dll ecrit en c dans un prog en delphi.
Aujourd'hui j'essay la meme operation (meme dll) mais dans un prog en C# (je debute dans ce language).
Le code .h de la dll donne ceci (2 fonctions) COPIDLL_DECL int Initialize();
COPIDLL_DECL int Getvalue(const char* objName, double* Value);
Je declare ma dll en C# de la facon suivante:
[DllImport("c:\\madll.dll", CharSet = CharSet.Auto)]
public static extern int Initialize();
=> cette fonction est OK
Mais, j'ai des problemes pour la deuxieme fonction avec les pointeurs... J'ai essayé plusieurs methodes sans succés.
Comment declarer ces pointeurs ?
Quelqu'un aurait-il une idée ?
gilch
Messages postés18Date d'inscriptionsamedi 6 septembre 2003StatutMembreDernière intervention15 avril 2013 2 mars 2010 à 20:00
Merci pour le lien.
ca m'a eclairé sur le principe.
Par contre je n'ai toujours pas d'idée claire sur la declaration est l'utilisation des pointeurs de cette fonction (tirée du .h) :
MesureDLL_DECL int Getvalue(const char* objName, double* Value);
Si quelqu'un a un eemple ou des liens, je suis preneur...
Vous n’avez pas trouvé la réponse que vous recherchez ?
gilch
Messages postés18Date d'inscriptionsamedi 6 septembre 2003StatutMembreDernière intervention15 avril 2013 3 mars 2010 à 16:58
Merci a vous.
En fait j'ai fait un melange avec ref et string builder...
ce qui donne: [DllImport("c:\\madll.dll", CharSet = CharSet.Ansi,CallingConvention = CallingConvention.Cdecl)]
public static extern int GetStr(String objname, StringBuilder Svalue);
pour l'une et pour l'autre fonction:
[DllImport("c:\\madll.dll", CallingConvention = CallingConvention.Cdecl)]
public static extern int GetFloat(String objname, ref double Fvalue);
je sais pas si c'est trés "correcte" mais cela fonctionne. Merci a vous deux pour vos conseils