Bonjour,
Je dois faire des appels depuis un programme C# (application Console pour l'instant) à diverses Api disponibles depuis une DLL écrite en C.
Je possède un exemple en VB6 qui fonctionne bien.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 //VB6: Private Declare Function GetLastTxtError Lib "ProjDll.dll" () As String [DllImport("ProjDll.dll", EntryPoint = "GetLastTxtError")] public static extern String GetLastTxtError();
Par contre, l'échange des chaines de caractères me pose probleme.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 ' affichage du texte d'erreur state = StrConv(GetLastTxtError(), vbFromUnicode)
Je ne récupère que la premiere lettre de la chaine.
J'ai essayé le code suivant trouvé sur le support microsoft : même chose.
Code : Sélectionner tout - Visualiser dans une fenêtre à part String sMsg = ProjDLL.GetLastTxtError();
L'un d'entre vous a t-il une piste ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part byte[] arBytes = System.Text.Encoding.GetEncoding(1252).GetBytes(ProjDLL.GetLastTxtError());
Partager