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
jusque là ca va.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 [DllImport("ssvw32.dll")] public static extern int SSV_InitLIB();
Ensuite j'initialise une session en mémoire pour y stocker des données via une autre API :
je l'appelle de la sorte :
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);
Ici aussi tout se passe bien. Je récupère en sortie la session de numéro '1'.
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());
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 :
et l'appel :
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);
J'ai donc deux paramètres en sortie.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 retour = SGD_LireChamp(NumeroSession, 1, 1, 6, out VChamp, out TailleMax);
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.
J'ai essayer d'initialiser VChamp a une autre valeur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 string VChamp = null; int TailleMax = 31;
j'ai meme essayer de marshaller le tout mais.... que dalle !!
HELP MEEEEEEE !!!!!!!!!!!!
Partager