Re !

J'ai toujours en encore des problèmes avec ces API. Je m'explique :

Dans mon programme tout d'abord, j'initialise les bibliothèques que j'utilise avec une API
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
[DllImport("ssvw32.dll")]
     public static extern int SSV_InitLIB();
jusque là ca va.

Ensuite j'initialise une session en mémoire pour y stocker des données via une autre API :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
[DllImport("sgdw32.dll")]
public static extern int SGD_ReserverSession(int Taille,	out int NumeroSession);
je l'appelle de la sorte :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
retour = SGD_ReserverSession(taille, out NumeroSession);
if (retour != 0)
MessageBox.Show("Erreur de création de session : " + retour.ToString());
Ici aussi tout se passe bien. Je récupère en sortie la session de numéro '1'.

Je lis ensuite des données contenues sur une carte via une autre API : Toujours pas de problème. Les données sont bien copiées en mémoire.

MAIS je m'arrive pas a les extraire en variables managées !!!

je fais appel a cette API :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
[DllImport("sgdw32.dll")]
public static extern int SGD_LireChamp(int NumeroSession,int IdGroupe, int OccurenceGroupe, int NumeroChamp, out string ValeurChamp, out int TailleMax);
et l'appel :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
retour = SGD_LireChamp(NumeroSession, 1, 1, 6, out VChamp, out TailleMax);
J'ai donc deux paramètres en sortie.
Je récupère sans problemes le 'int' (comme plus haut avec la méthode reserversession) mais impossible de récupérer la chaine de caractères !! J'ai un plantage du genre : "La référence d'objet n'est pas définie a une instance etc etc etc".
Pourtant mes varaibles sont bien déclarer, j'ai déjà vérifier.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
string VChamp = null;
int TailleMax = 31;
J'ai essayer d'initialiser VChamp a une autre valeur.
j'ai meme essayer de marshaller le tout mais.... que dalle !!

HELP MEEEEEEE !!!!!!!!!!!!