我正在尝试在调试模式下运行一个简单的
mysql-connector
(c ++)应用程序,但当它到达以下行时似乎失败了(请参阅下面的完整源代码):
pstmt = con->prepareStatement(query);
并在 Visual Studio 中使用本地 Windows 调试器,它会停止[在上面的那行]并出现以下异常未处理:
Unhandled exception at 0x00007FFD7921A388 in Database.exe: Microsoft C++ exception: std::bad_alloc at memory location 0x0000004F7E8FC920.
如果我将活动构建配置设置为
Release
(VS 2017,Win10/64 位),该应用程序可以正常运行。我正在使用 mysql-connector-c++-noinstall-1.1.12
在调试活动构建配置时,如果我只是按 ctrl+f5(构建而不调试),我会收到警报/弹出窗口:
Microsoft Visual C++ Runtime Library
Program: ..\Database.exe
abort() has been called
(Press Retry to debug the application)
知道我在这里可能做错了什么吗?起初我认为这与我自己没有构建 mysql-connector 有关(根据我之前的帖子:尝试在 Windows 上构建 mysql-connector-cpp )。
编辑:我尝试使用两个不同的下载
mysql-connector-c++
:
mysql-connector-c++-noinstall-1.1.12-winx64
Connector C++ 8.0
它们分别产生以下错误/崩溃窗口:
The ordinal 4699 could not be located in the dynamic link library c:\users\..\Database\x64\Debug\mysqlcppconn.dll
The ordinal 4699 could not be located in the dynamic link library c:\WINDOWS\SYSTEM32\mysqlcppconn-7-vs14.dll
再次感谢!
关于您之前的帖子:
你应该能够构建OK;该特定错误表明您的链接命令无法找到您表示系统上有的 SSL 库。我的建议是使用 nmake 或创建一个 MSVS 项目(cmake 没有什么“错误”...但是如果您要使用 Microsoft 的编译器,通常使用 Microsoft 的工具会更容易)并且 - 最重要的是 - 使用正确的“链接路径”语法。
关于您当前的帖子:
问:您是否按照此处中的说明安装了 MySQL Connector?
我之前的建议仍然有效:如果您有 MSVS,则进入 IDE,创建一个 MSVS C++ 控制台模式项目,然后将您发布到 Pastebin 的代码剪切/粘贴到您的新项目中。 创建 MSVS 项目。
进入 MSVS > 项目 > 属性并添加 a) MySQL 包含的路径,以及 b) MySql 库的路径。
将 MySql dynamic 库 (LIB/vs14/mysqlcppconn8.lib) 添加到链接命令中。请按照此处的说明进行操作。
发回您发现的内容。它应该可以工作。请准确指定您所做的事情,如果没有,请复制/粘贴准确错误消息。
一旦一切正常...然后根据需要创建“实际”构建脚本。至少你会有一个很好的“参考”可以依靠。
PS:
二进制 .msi 有两个 C/C++ 连接器库:一个静态库和一个动态 .dll。您可以链接到带有“.lib”文件的任一:“LIB/vs14/mysqlcppconn8.lib”用于 .dll,或“LIB/vs14/mysqlcppconn8-static.lib”用于静态库。