我们希望从occi 18升级到occi 19.3.0.0.0,因为我们想独立于旧的MS库(MSVCR120.DLL)。
但在连接数据库时出现以下错误:
"Program: C:\Windows\SYSTEM32\MSVCP140D.dll
File: C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE\xstring
Line: 1695 Expression: string subscript out of range
For information ..."当我们删除createEnvironment中的"OCCIUTF16","OCCIUTF16“时,连接成功。
我们还认识到,在这个简单的程序中,使用occi 19加载的不是oci.dll,而是使用occi 18加载的oci.dll。
#include "occi.h"
#include <iostream>
using namespace oracle::occi;
using namespace std;
int main(int argc, wchar_t * argv[])
{
try {
// OK
//auto env = Environment::createEnvironment(Environment::Mode(Environment::OBJECT | Environment::THREADED_MUTEXED));
//auto conn = env->createConnection("SCOTT", "tiger", "ORATEST");
// ERROR
auto env = Environment::createEnvironment("OCCIUTF16", "OCCIUTF16", Environment::Mode(Environment::OBJECT | Environment::THREADED_MUTEXED));
UString user((utext*)L"SCOTT");
UString pwd((utext*)L"tiger");
UString host((utext*)L"ORATEST");
auto conn = env->createConnection(user, pwd, host);
}
catch (SQLException & ex) {
cout << ex.what();
}
return 0;
}环境: ORACLE SERVER 12.1.0.2 Microsoft Visual C++ 2017编译器15.9.13版
基本轻量级封装信息
5月29日星期三22:35:38 MDT 2019
客户端共享库64位- 19.3.0.0.0
有什么想法吗?
提前感谢!
发布于 2019-07-18 16:29:55
调试失败时,你能提供完整的堆栈吗?
) ->,所以,我假设你是用ORAOCCIxxD.LIB (调试版本)编译的。如果您正在使用调试版本,请使用调试版本中的所有组件。
谢谢,-P。文卡特拉曼。
https://stackoverflow.com/questions/56988240
复制相似问题