如何处理将MariaDB连接到C++;应用 我正在努力研究将MariaDB与C++应用程序连接起来的项目。 我引用了URL:。 这个URL是连接MariaDB和C++的一个很好的来源。但是,它没有描述如何处理lib文件和dll文件。 当我通过MSI安装MariaDB connector/C++时,它给了我几个文件:conncpp.hpp、mariadbcpp.dll、mariadbcpp.lib等

如何处理将MariaDB连接到C++;应用 我正在努力研究将MariaDB与C++应用程序连接起来的项目。 我引用了URL:。 这个URL是连接MariaDB和C++的一个很好的来源。但是,它没有描述如何处理lib文件和dll文件。 当我通过MSI安装MariaDB connector/C++时,它给了我几个文件:conncpp.hpp、mariadbcpp.dll、mariadbcpp.lib等,c++,dll,mariadb,lib,C++,Dll,Mariadb,Lib,我试图通过设置路径C:\Program Files(x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.28.29910\include来包含mariadb/conncpp.hpp,我对lib文件也做了同样的操作。 另外,我转到属性并设置lib文件的链接器。 以下是我计划执行的代码: // Includes #include <iostream> #include <mariadb/conncpp.hpp&g

我试图通过设置路径C:\Program Files(x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.28.29910\include来包含mariadb/conncpp.hpp,我对lib文件也做了同样的操作。 另外,我转到属性并设置lib文件的链接器。 以下是我计划执行的代码:

// Includes
#include <iostream>
#include <mariadb/conncpp.hpp>

// Main Process
int main(int argc, char** argv)
{
    try
    {
        // Instantiate Driver
        sql::Driver* driver = sql::mariadb::get_driver_instance();
    // Configure Connection
    // The URL or TCP connection string format is
    // ``jdbc:mariadb://host:port/database``.
    sql::SQLString url("jdbc:mariadb://192.0.2.1:3306/test");

    // Use a properties map for the user name and password
    sql::Properties properties({
          {"user", "db_user"},
          {"password", "db_user_password"}
        });

    // Establish Connection
    // Use a smart pointer for extra safety
    std::unique_ptr<sql::Connection> conn(driver->connect(url, properties));

    // Use Connection
    // ...

    // Close Connection
    conn->close();
}

// Catch Exceptions
catch (sql::SQLException& e)
{
    std::cerr << "Error Connecting to MariaDB Platform: "
        << e.what() << std::endl;

    // Exit (Failed)
    return 1;
}

// Exit (Success)
return 0;
}
//包括
#包括
#包括
//主要过程
int main(int argc,字符**argv)
{
尝试
{
//实例化驱动程序
sql::Driver*Driver=sql::mariadb::get_Driver_instance();
//配置连接
//URL或TCP连接字符串格式为
//``jdbc:mariadb://host:port/database``.
sql::SQLString url(“jdbc:mariadb://192.0.2.1:3306/test");
//使用属性映射作为用户名和密码
sql::属性({
{“用户”,“数据库用户”},
{“密码”,“数据库用户密码”}
});
//建立联系
//使用智能指针以获得额外的安全性
std::unique_ptr conn(驱动程序->连接(url、属性));
//使用连接
// ...
//密切联系
conn->close();
}
//捕获异常
捕获(sql::SQLException&e)
{

STR::CURR

您已经遇到C++连接器API的不足。或者称之为Bug。它是Windows专用的。STL对象的调试版本和发布版本可能具有不同的布局。 将构建转换为发布配置应该会有所帮助。但根据使用的VS版本,仍可能出现一些问题。作为一种解决方法,您还可以尝试使用其他连接方法,例如。 std::unique_ptr conn(驱动程序->连接(url,“数据库用户”,“数据库用户密码”);


因为它不依赖于属性映射,所以这里会引起问题。

你需要读一个好的C++编译器和链接器的文档。你还需要使用一个好的调试器。你尝试过用C++编译器,作为调试器吗?并且在<代码> SQ::Deal**Reals:SQL::MiRADB::GETHyDerVerl Stand();
您可能有
驱动程序
作为
nullptr
。您检查了吗?驱动程序不能真正为nullptr。可以找到并加载dll。问题似乎不是dll/lib文件的位置