Уже 2 дня я пытаюсь понять, почему это происходит, однако у меня недостаточно навыков отладки, чтобы понять, почему это происходит.
Мне нужно использовать sql:: ConnectOptionsMap , чтобы я мог передать нужные параметры подключения, такие как кодировка и т. Д.
Простой пример:
sql::ConnectOptionsMap connection_properties;
connection_properties["hostName"] = sql::SQLString("localhost");
connection_properties["userName"] = sql::SQLString("username");
connection_properties["password"] = sql::SQLString("password");
connection_properties["CLIENT_MULTI_STATEMENTS"] = (true);
sql::Driver * driver = get_driver_instance();
std::unique_ptr<sql::Connection> con(driver->connect(connection_properties));
Скомпилировано с VS 2017, в режиме отладки:
Exception thrown at 0x00007FFFECC811D0 (vcruntime140d.dll) in Demo.exe: 0xC0000005: Access violation reading location 0xFFFFFFFFFFFFFFFF.
После создания некоторых "мини-дампов" я вижу, что здесь происходит сбой кода:
_NODISCARD static _CONSTEXPR17 int compare(_In_reads_(_Count) const char * const _First1,
_In_reads_(_Count) const char * const _First2, const size_t _Count) noexcept // strengthened
{ // compare [_First1, _First1 + _Count) with [_First2, ...)
#if _HAS_CXX17
return (__builtin_memcmp(_First1, _First2, _Count));
#else /* _HAS_CXX17 */
return (_CSTD memcmp(_First1, _First2, _Count)); <-- HERE
#endif /* _HAS_CXX17 */
}
Кто-нибудь сталкивался с этим раньше?Я много искал и не мог найти никого, кто имел бы эту проблему до сих пор.
Я действительно не могу понять, почему это происходит, поскольку нет ничего нестандартного, просто пример из документации ...
Пожалуйста, сообщите.