C++ 使用MySQL Connector/C调试项目生成时出现运行时错误++

C++ 使用MySQL Connector/C调试项目生成时出现运行时错误++,c++,mysql,visual-studio-2012,mysql-connector,C++,Mysql,Visual Studio 2012,Mysql Connector,我在项目中使用MySQL连接器/C++与MySQL数据库交互。这个项目编制得很好。然而,当我运行它时,我得到一个错误 Unhandled exception at at 0x000007FEFD30B16D in ProjectName.exe: Microsoft C++ exception: std::bad_alloc at memory location 0x00000000036FC2A0. 在第一行使用数据库。在本例中,我正在执行一个MySQL语句 sql::Statement*

我在项目中使用MySQL连接器/C++与MySQL数据库交互。这个项目编制得很好。然而,当我运行它时,我得到一个错误

Unhandled exception at at 0x000007FEFD30B16D in ProjectName.exe: 
Microsoft C++ exception: std::bad_alloc at memory location 0x00000000036FC2A0.
在第一行使用数据库。在本例中,我正在执行一个MySQL语句

sql::Statement* stmt = mSqlCon->con->createStatement();
stmt->execute("CREATE TABLE IF NOT EXISTS ..."); // Unhandled exception
当我编译发行版时,一切正常,不会抛出错误

我的环境:

Windows7,64位 Visual Studio Express 2012 可能相关的Visual Studio项目设置和库:

预处理器定义:_调试_MBCS_CRT\u安全\u无警告 运行库:多线程调试/MTd 基本运行时检查:都是/RTC1,相当于/RTCsu/RTC1 MySQL Connector/C++1.1.6发行版 Boost版本1.59.0 我的想法: 这个错误发生在我开始使用boost库之后。这需要更改某些项目设置,例如预处理器定义(DEBUG),它无论如何都应该用于调试生成,但之前没有用于生成连接器。因此,我认为问题在于在项目的调试构建中使用MySQL Connector/C++的发布版本。在发布版本中,一切正常。但是,我找不到连接器的任何调试版本,也不能自己构建它或使用调试库重新安装它。。。我的问题还有别的解决办法吗?还是我搜索得不够好

<>我读到我的MySQL文件夹中有一个调试文件夹:\\程序文件\ mysql \mysql连接器C++ +1.1.6\LIB,但它只包含一个Opt文件夹,我正在使用的版本。
非常感谢您的帮助

是的,您是对的,问题在于将调试配置中的项目链接到opt文件夹中的发布库之后。您只需在调试配置中编译库的源代码:

从中,单击选择平台,单击源代码并下载库的windows版本 如果你没有 打开命令提示符并将目录更改为下载的源代码目录 键入path\to\cmake.exe-G Visual Studio 14 2015 Win64-DCMAKE\u BUILD\u Type=Debug并运行它;通过这种方式,您可以告诉CMake构建一个项目,您可以使用VisualStudio的版本14编译该项目。如果您希望在具有调试配置的x64机器上具有CMake-h类型的外观,您可以选择其他版本。 此时,您应该在库源文件夹中看到一些Visual Studio项目-打开文件mysqlconncnpp.sln。如果要创建静态库,请将输出文件类型更改为静态。 转到解决方案属性,仅选择要生成的MYSQLCONNCPP项目。 a现在转到项目属性,并将HAVE_STRUCT_TIMESPEC添加到预处理器定义中,这将防止重新定义TIMESPEC B添加/EHSC到C++ ++命令行,这防止了与异常处理程序相关的错误。 c更改项目的运行时库,使其与要链接库的库相匹配:例如,在我的例子中,我必须将其设置为/MDd 如果出现其他错误,请检查CMake构建的所有项目属性是否编写良好:它可能在某些路径和文件名中存在问题,其中包含空格。
我也有同样的问题。发生这种情况是因为配置中存在差异。如果mysql包装器是一个单独的.lib文件,则可以调试客户端应用程序。如果已经下载并安装了Mysql发布版本,那么您需要构建一个包装器来连接/查询等,并将其作为release.lib导出到其他项目。可以使用提供的跟踪选项调试Mysql。