Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[CF]appel à une fonction dans une dll avec param struct qui contient des chaines de carractère

3 réponses
Avatar
Yannick S.
bonjour,

je souhaite appeler une fonction encapsulé dans une dll.
Je sais comment faire et j'y arrive mais je n'arrive pas à appeler des
fonctions qui prennent en paramêtre une structure qui à un champs de type
char[36].

pouvez vous me guider dans ma recherche ?

merci d'avance

3 réponses

Avatar
Nicolas B
pourquoi de pas utiliser l'objet string ?


"Yannick S." a écrit dans le
message de news:
bonjour,

je souhaite appeler une fonction encapsulé dans une dll.
Je sais comment faire et j'y arrive mais je n'arrive pas à appeler des
fonctions qui prennent en paramêtre une structure qui à un champs de type
char[36].

pouvez vous me guider dans ma recherche ?

merci d'avance




Avatar
Yannick S.
en fait on ne peut pas dans le compactframework, c'est bien ca le pb.

sur le .net framework on fait un classique structlayout avec un charset, ...
charset n'étant pas suporté par le CF ....
on peut aussi faire un MarshalAS mais le marshalAs n'est pas supporté par le
CF ....

voila tout mon trouble

struct myStruct{
char b[50];
int a;
}mystruct;

"Nicolas B" a écrit dans le message de news:
%
pourquoi de pas utiliser l'objet string ?


"Yannick S." a écrit dans le
message de news:
bonjour,

je souhaite appeler une fonction encapsulé dans une dll.
Je sais comment faire et j'y arrive mais je n'arrive pas à appeler des
fonctions qui prennent en paramêtre une structure qui à un champs de type
char[36].

pouvez vous me guider dans ma recherche ?

merci d'avance








Avatar
Vérane Chanson
Je ne sais pas si ca peut marcher avec le compact framework, car j'ai le
.net framework complet d'installe, mais moi je fais comme ca :

Dans la dll C++ non managee :
struct C {

int x;

char* id;

};



TEST_VCH2_API char* fnladll4(C* aC); //renvoie id



et du coté C# pour l'appel :



[StructLayout(LayoutKind.Sequential)]

public struct C

{

public int x;

public string id;

}

[DllImport("ladll.dll")]

internal static extern string fnladll4(ref C aC);

private void button3_Click(object sender, System.EventArgs e)

{

C myC;

myC.x = 4;

myC.id = "hello";

string res4 = fnladll4(ref myC);

MessageBox.Show(res4); //hello

}

}



Verane.



"Yannick S." a écrit dans le
message de news:
en fait on ne peut pas dans le compactframework, c'est bien ca le pb.

sur le .net framework on fait un classique structlayout avec un charset,
... charset n'étant pas suporté par le CF ....
on peut aussi faire un MarshalAS mais le marshalAs n'est pas supporté par
le CF ....

voila tout mon trouble

struct myStruct{
char b[50];
int a;
}mystruct;

"Nicolas B" a écrit dans le message de news:
%
pourquoi de pas utiliser l'objet string ?


"Yannick S." a écrit dans le
message de news:
bonjour,

je souhaite appeler une fonction encapsulé dans une dll.
Je sais comment faire et j'y arrive mais je n'arrive pas à appeler des
fonctions qui prennent en paramêtre une structure qui à un champs de
type
char[36].

pouvez vous me guider dans ma recherche ?

merci d'avance