Попытки построить простое соединение MySQL, но получает bad_alloc
и я не могу понять, как решить эту проблему, даже не смотря на аналогичные должностис ++ MySQL bad_alloc соединения с использованием C++ разъема
вот мой код
#include <iostream>
#include <stdlib.h>
#include <sstream>
#include <memory>
#include <string>
#include <stdexcept>
#include "mysql_connection.h"
#include "cppconn\driver.h"
#include "cppconn\statement.h"
#include "cppconn\connection.h"
#include "cppconn\exception.h"
#include "cppconn\prepared_statement.h"
#include "cppconn\statement.h"
using namespace std;
using namespace sql;
int main()
{
Driver *driver;
Connection *conn;
Statement *stmt;
driver = get_driver_instance();
conn = driver->connect("127.0.0.1:3306", "root", "root"); // breaks here
stmt = conn->createStatement();
stmt->execute("USE mydb");
return 0;
}
Я использую mysql-connector-c++-1.1.7
mysqlcppconn.lib
используется в качестве зависимостей mysqlcppconn.dll
находятся в той же директории, как .exe
есть.
Здесь ошибка Exception thrown at 0x000007FEFD39A06D in MysqlConn.exe: Microsoft C++ exception: std::bad_alloc at memory location 0x000000000014F5D0.
Благодаря
* mysqlcppconn.lib используется в качестве зависимостей, и он находится в той же директории, как .exe является * - Файл .lib используется в процессе сборки и не имеет никакого отношения к тому, где находится 'exe'. Кажется, вы не знаете, какие компоненты используются для создания вашего приложения и какие компоненты участвуют в запуске вашего приложения. Может быть, DLL MySql, которые вы должны использовать во время выполнения, несовместимы с вашим исполняемым файлом? – PaulMcKenzie
Извините, я имел в виду .dll, я исправлю это. Я после этого введение и использовали dymanic вместо STATIS сборки https://dev.mysql.com/doc/connector-cpp/en/connector-cpp-apps-windows-visual-studio.html в соответствии с этим Думаю, мне больше не нужны dll mysql? :( – abdoe
Ну, вы должны убедиться, что DLL (кажется, они используют стандартную библиотеку C++), совместимы с версией стандартной библиотеки вашего компилятора. Другими словами, если эти библиотеки DLL были созданы с использованием VS 2013, и вы используя другую версию Visual Studio, тогда будут проблемы с исполнением. Если это статическая библиотека, то применяется то же самое. Статическая библиотека должна быть построена с тем же компилятором, параметрами компилятора и т. д. в качестве вашего приложения. – PaulMcKenzie