[débutant] Récupérer résultats mysql, via dll dynamique
:salut:
Voici mon programme essayant de se connecter à une base de données MySQL 5.0 via la bibliothèque 'libMySql.dll'. J'ai aussi un fichier libmysql.def mais je ne sais pas quoi en faire. Dans ce fichier def y'a, d'après moi, le nom des fonctions de la dll, mais sans leurs paramètres.
Dans le fichier mysql.h, y'a les mêmes fonctions, alors je suppose qu'il s'agit des mêmes paramètres, et en même temps je récupère les différentes structures. C'est pas hyper propre mais faut bien que j'essaye d'avancer ! :mouarf:
Voilà le code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
| #include <iostream>
#include <windows.h>
#include "C:\\Program Files\\MySQL\\MySQL Server 5.0\\include\\mysql.h"
int main()
{
MYSQL *hsql;
MYSQL_RES *hsql_res;
MYSQL_ROW hsql_row;
HINSTANCE DLLHandle;
// PROTOTYPES :
// mysql_real_connect
typedef void (*PtrFunction_MRC)(MYSQL *mysql,
const char *host,
const char *user,
const char *passwd,
const char *db,
unsigned int port
);
PtrFunction_MRC Ptr_MRC;
// mysql_query
typedef int (*PtrFunction_MQ)(MYSQL *mysql,
const char *q
);
PtrFunction_MQ Ptr_MQ;
// mysql_use_result
typedef MYSQL_RES* (*PtrFunction_MUR)(MYSQL *mysql);
PtrFunction_MUR Ptr_MUR;
// mysql_fetch_row
typedef MYSQL_ROW (*PtrFunction_MFR)(MYSQL_RES *result);
PtrFunction_MFR Ptr_MFR;
DLLHandle = LoadLibrary("C:\\Program Files\\MySQL\\MySQL Server 5.0\\lib\\opt\\libmySQL.dll");
// Connection
Ptr_MRC = (PtrFunction_MRC)GetProcAddress(DLLHandle,"mysql_real_connect");
Ptr_MRC(hsql,"localhost","root","mysqlroot","test",3306);
// Query
Ptr_MQ = (PtrFunction_MQ)GetProcAddress(DLLHandle,"mysql_query");
Ptr_MQ(hsql,"SELECT * FROM myTable");
// Query Use Result
Ptr_MUR = (PtrFunction_MUR)GetProcAddress(DLLHandle,"mysql_use_result");
hsql_res = Ptr_MUR(hsql);
// Query fetch first row
Ptr_MFR = (PtrFunction_MFR)GetProcAddress(DLLHandle,"mysql_fetch_row");
hsql_row = Ptr_MFR(hsql_res);
std::cout << hsql_row;
return 0;
} |
J'utilise code::block et je suis sous Windows XP.
Lors que je veux lire une ligne de résultat, rien ne s'affiche... pourquoi ? :oops: La compilation se passe sans soucis. Le programme termine à 1 donc doit y avoir un blem quelque part ? 8O
Code:
1 2 3 4
|
Executing: C:\Program Files\CodeBlocks/console_runner.exe "D:\Documents\cousin_g\CodeBlockProjects\mysql_1\console.exe" (in .)
Process terminated with status 1 (0 minutes, 1 seconds)
0 errors, 0 warnings |
Merci de votre aide