PInvokeStackImbalance a été détecté

tigerskin Messages postés 39 Date d'inscription jeudi 26 mai 2005 Statut Membre Dernière intervention 24 juillet 2012 - 19 juil. 2012 à 11:08
tigerskin Messages postés 39 Date d'inscription jeudi 26 mai 2005 Statut Membre Dernière intervention 24 juillet 2012 - 24 juil. 2012 à 09:39
Bonjour à vous,

j'ai un souci d'exécution de mon code, au lancement j'ai un message d'erreur "Un appel à la fonction PInvoke "xxx.SQlite::sqlite3_open a déséquilibré la pile [...]".

Je pense qu'il s'agit d'une différence entre la méthode que j'invoque et celle réellement présente dans la DLL ? Ci-après mon code :

Invocation de la méthode
[DllImport("mozsqlite3")]
private static extern int sqlite3_open(IntPtr fileName, out IntPtr database);


Le code qui l'utilise
public void OpenDatabase(String baseName)
{
     if (sqlite3_open(StringToPointer(baseName), out database) != SQL_OK)
     {
        database = IntPtr.Zero;
        throw new Exception("Error with opening database" + baseName + "!");
     }
}


Je précise que la méthode StringToPointer me permet de "convertir" un string en IntPtr.

D'après certains scripts trouvés sur le net qui utilisent la même chose, à priori je n'ai pas d'erreur, mais mon compilateur lui n'est pas d'accord :p

Quelqu'un aurait la solution ?

Merci !

1 réponse

tigerskin Messages postés 39 Date d'inscription jeudi 26 mai 2005 Statut Membre Dernière intervention 24 juillet 2012
24 juil. 2012 à 09:39
Personne ?
0
Rejoignez-nous