使用mongocxx驱动程序时的访问冲突读取位置

时间:2019-03-07 15:52:25

标签: c++ mongodb visual-studio windows-7-x64 mongo-cxx-driver

我在使用mongodb c ++驱动程序时遇到了麻烦。

我有以下代码,它工作正常:

//bsoncxx::document::value doc-->It was defined properly before

static mongocxx::instance inst{};

mongocxx::client conn{ mongocxx::uri{} };

auto db = conn["Test"];

auto res = db["Executions"].insert_one(std::move(doc));

但是当我更改为:

static mongocxx::instance inst{};

mongocxx::client conn{ mongocxx::uri{} };

auto db = conn[dbName];

auto res = db[colName].insert_one(std::move(doc));

(dbName和colName是函数的字符串参数)

代码到达该行:

auto db = conn[dbName];

我收到以下异常:

Access violation reading location 0x0000726F74636570

我正在使用Windows 7 x64和Visual Studio 2017

有人知道为什么会这样吗?

感谢您的时间。

1 个答案:

答案 0 :(得分:1)

这里确实没有足够的信息可以肯定地知道,我将做出一个疯狂的猜测,并说您正在混合调试和发布运行时,例如std::stringmongocxx库和您的应用程序的内部构造。

为每种要使用的CRT形式构建一次驱动程序,并根据其当前的构建配置选择正确的驱动程序,这一点非常重要。

https://docs.microsoft.com/en-us/cpp/build/reference/md-mt-ld-use-run-time-library?view=vs-2017