Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/136.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 连接到mySQL数据库已过载libmysql.dll_C++_Mysql_Connect_Buffer Overflow_Libmysql - Fatal编程技术网

C++ 连接到mySQL数据库已过载libmysql.dll

C++ 连接到mySQL数据库已过载libmysql.dll,c++,mysql,connect,buffer-overflow,libmysql,C++,Mysql,Connect,Buffer Overflow,Libmysql,我正在加载libmysql.dll,希望连接到数据库。调用mysql\u real\u connect时,我得到一个缓冲区溢出错误。为什么?代码: #include <iostream> #include <string.h> #include <windows.h> #include <cstdlib> #include <stdio.h> #include "mysql.h" using namespace std; // Def

我正在加载libmysql.dll,希望连接到数据库。调用mysql\u real\u connect时,我得到一个缓冲区溢出错误。为什么?代码:

#include <iostream>
#include <string.h>
#include <windows.h>
#include <cstdlib>
#include <stdio.h>
#include "mysql.h"

using namespace std;
// Definition des Types der DLL-Funktion, die verwendet werden soll
typedef int (*BinaryFunction_c) (int,string,string,string,string,int,int,int) ;
typedef int (*BinaryFunction_i) (int) ;

int main (void) 
{
    BinaryFunction_i    m_init  ;
    BinaryFunction_c    m_connect ;
    BOOL              fFreeResult ;
    int sqlinit;
    int connid;

    // DLL Datei laden
    HINSTANCE         hinstLib = LoadLibrary("./libmysql.dll");



    if (hinstLib != NULL)
    {
        // Die Einsprungadresse abfragen
        m_init = (BinaryFunction_i) GetProcAddress (hinstLib, "mysql_init") ;

        // Die Funktion aufrufen
        if ( m_init != NULL )
        {
            sqlinit = (*m_init) (NULL); 
            cout << dec << "m_init: " << m_init << endl;
        }
        else
        {
            cout << "fehler beim init" << endl;
        }

        //connect
        m_connect = (BinaryFunction_c) GetProcAddress (hinstLib, "mysql_real_connect");
        // Die Funktion aufrufen
        if ( m_connect != NULL )
        {
            connid= (*m_connect) (sqlinit, "192.168.1.2", "cashbot", "eck1234", "cashbot", 3306, NULL, 0);
            cout << "connid: " << connid << endl;
        }
        else
        {
            cout << "fehler beim connect" << endl;
        }

        // Die DLL-Datei wieder entladen
        fFreeResult = FreeLibrary (hinstLib) ;
    }

    return 0;
}

好的,问题是64位win7在SysWOW64文件夹中搜索64位版本的libmysql.dll,而此dll不能与32位程序一起使用

sqlinit应该是一个MYSQL*,但它是一个int。不确定这是否是你的问题,但它对我来说肯定是有问题的。THX,改为MYSQL*sqlinit;和typedef MYSQL**BinaryFunction_i int;但还是会出现溢流???