mysql connector 8.0 c++错误:“cdk:字符串转换失败”

zi8p0yeb  于 2021-07-24  发布在  Java
关注(0)|答案(1)|浏览(309)

我最近安装了mysql connector 8.0 for c++。我一直在尝试使用教程代码来运行一个连接的基本示例(创建'session'类的示例),但是在为该类提供构造函数参数时,我总是遇到这个错误。
虽然文档声明构造函数中只使用const&strings,但连接器实际上有一个自己的字符串 Package 器实现(mysqlx::abi2::r0::string),它显然应该将字符字符串转换为api使用的任何格式。但是,每次我试图构造其中一个对象时,都会触发一个“fromutf8”函数,并出现某种错误(因此出现标题)。我无法检查函数的实现,因为它在一个dll中。
有人知道怎么解决这个问题吗?或者至少是什么原因造成的?我已经尝试用库提供的其他受支持的显式转换选项(std::u16string)初始化这个 Package 器,但随后得到了一个“错误数组长度”异常。


# include <mysqlx/xdevapi.h>

# include <iostream>

using namespace mysqlx;

int main()
{
    try
    {
        Session sess("host", 3306, "root", "1234");
    }
    catch (const std::exception& e)
    {
        std::cout << e.what();
    }
}
wfypjpf4

wfypjpf41#

我猜你是在调试模式下构建的?mysql库是在发布模式下构建的,将它们混合在一起会导致此错误。将项目设置更改为release,它应该可以工作。有关内置调试,请参阅本指南

相关问题