VB6 et libmysql : Bad DLL calling convention
Bonjour,
je suis en train de démarrer une appli avec accès à une base MySQL. J'ai donc récupéré le libmysql.dll de la distrib 5.1 afin d'utiliser la méthode à Romain :
http://rp.developpez.com/vb/tutoriels/mysql/
Problème : j'ai une erreur "Bad DLL calling convention" lors de l'appel à l'API CopyMemory.
Cette API est indispensable pour pallier l'absence de pointeurs en VB6.
J'ai également essayé avec la distrib libmysql en 4.1 : même chose.
Si dans l'appel je supprime le "ByVal" j'ai un plantage VB.
Voici le code avec en rouge , l'appel qui plante :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, _
Source As Any, ByVal Length As Long)
Private Sub EnumTables(pMySQL As Long)
Dim pMyROW As Long, myROW As Long, pMyRES As Long, i As Long
pMyRES = mysql_list_tables(pMySQL, "")
If (pMyRES <> 0) Then
For i = 0 To mysql_num_rows(pMyRES) - 1
pMyROW = mysql_fetch_row(pMyRES)
CopyMemory myROW, ByVal pMyROW, 4
msgbox CopieChaine(myROW)
Next
mysql_free_result (pMyRES)
End If
End Sub |
J'ai bien trouvé une explication ici :
http://vcfaq.mvps.org/il/2.htm
mais je dois dire que je ne suis pas plus avancé.
Si qqun a une solution , merci !
Sergio