[C#] Problème avec [dllImport]
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 :
Code:
1 2 3 4
|
int spssOpenWrite (const char *filename, int *handle)
int spssSetIdString (int handle, const char *id)
int spssCloseWrite (int handle) |
Que j'importe en c# de la manière suivante :
Code:
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) ; |
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:
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") ; |
Est-ce que quelqun à déjà eu ce genre de prolbème?
Merci d'avance pour vos réponses.