Bonjour,
Dans le cadre d'une application j'emploie une dll fournis pas SPSS pour créer et écrire dans un fichier .sav. La dll est écrite en c++ et distribuée avec le .h. J'importe les méthodes dont j'ai besoin (jusque là tous va bien)
Voilà la liste des méthodes que j'utilise :
Que j'importe en c# de la manière suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 int spssOpenWrite (const char *filename, int *handle) int spssSetIdString (int handle, const char *id) int spssCloseWrite (int handle)
Lorsque j'appelle la première méthode qui ouvre le fichier, celà fonctionne et me sélectionne le bon fichier pour que je puisse écrire dedans. Le problème est que le handle n'est pas modifié et quand j'appelle la 2ème méthode il ne trouve pas le début du fichier (qui devrait correspondre à l'adresse dans le handle.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 [DllImport("spssio32.dll")] private static extern int spssOpenWrite (string filename, ref IntPtr handle); [DllImport("spssio32.dll")] private static extern int spssCloseWrite (ref IntPtr handle) ; [DllImport("spssio32.dll")] private static extern int spssSetIdString (ref IntPtr handle, string id) ;
Est-ce que quelqun à déjà eu ce genre de prolbème?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 IntPtr handle = IntPtr.Zero; int error = 0; string id = "idtest" ; error = spssOpenWrite("C:\\Temp\\test.sav", out handle) ; if(error == 0) { error = spssSetIdString(out handle, id) ; if(error == 0) MessageBox.Show("Ecriture réuissi") ; else MessageBox.Show("Ecriture pas faite") ; error = spssCloseWrite(out handle) ; } else MessageBox.Show("Problème lors de l'ouvertur du fichier") ;
Merci d'avance pour vos réponses.
Partager