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 :
J'ai bien trouvé une explication ici :
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
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
Partager