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