PInvoke probleme encodage avec DLL ecrite en C
Bonjour,
Voila j'ai écrit un programme en C# et j'importes une DLL ecrite en C en utilisant PINvoke.
Voici ma fonction C
Code:
int myFunctionC(const char* asnModule, const char* pduName, ByteArray source, int length, ByteArray *destination)
Dans mon programme C# j'ai :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| [DllImport("Asn1Transcoder.dll", EntryPoint = "myFunctionC",CharSet = CharSet.Ansi )]
public static extern int myFunctionC(
StringBuilder asnModule, StringBuilder pduName, StringBuilder source, Int32 lenght, [MarshalAs(UnmanagedType.LPStr)] StringBuilder destination
);
public void callDLL()
{
StringBuilder asn = new StringBuilder();
asn.Append("monASN");
StringBuilder pduName = new StringBuilder();
pduName.Append("toro");
StringBuilder XER = new StringBuilder("text");
Int32 length;
StringBuilder retour = new StringBuilder("",200);
length = XER.Length;
int k = myFunctionC(asn, pduName, XER, length, retour);
} |
Donc ma fonction est bien appelé, il n'y a pas d'erreur.
Mon problème vient du fait que de mon parametre retour.
Du cote de la DLL ma valeur retour vaut "8F02"
Mais dans mon programme mon parametre retour vaut "P(ù".
Et je ne vois pas d'ou vient le probleme.
Si quelqu'un pouvait m'aider.
Merci.