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 : 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
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