我正在使用Visual Studio开发一个使用OCCI查询Oracle11g数据库的C++程序。这是一个非常简单的程序,并且只进行一次查询,但我总是遇到运行时错误。我首先尝试在VS2010中进行开发,下载了11.2.0.3的OCCI文件,结果得到一个错误,该错误与不在oci.dll中的堆分配过程的入口点有关。我感觉这个错误可能是因为我的Oracle客户端是11.2.0.1。
由于支持原因,我无法将客户端升级到更高版本,因此我决定重新使用Visual Studio2005,因为我在Oracle的OCCI文档中看到,11g客户端中已经安装了OCCI库和DLL的vc8版本。所以我把我的C++/OCCI程序移到了VS2005上,现在我得到了一个不同的调试运行时错误:一个错误消息框告诉我“应用程序未能正确初始化”,并且在VS输出窗口中的加载器中有一条消息说“ldrpWalkImportDescriptor()无法探测ORACLE客户端DIR\oci\lib\msvc\vc8\oraocci11d.dll的清单,ntstatus0xc0150002”我没有看到oraocci11d.dll的清单文件,所以我不知道如何解决这个问题。有谁更精通OCCI的VS设置吗?先谢谢你...
谢尔顿
发布于 2012-08-04 02:15:56
我注意到这里有许多OCCI问题没有回答,所以我觉得有必要解释一下我是如何解决这个问题的:)正如OCCI线程中经常提到的,关键是下载适当版本的Oracle Instant Client。我尝试使用我已经安装的运行时客户端的文件,但该客户端的版本号是11.2.0.1,而VS2010的OCCI需要11.2.0.2或11.2.0.3的版本。所以我最终下载了OCCI和即时客户端的11.2.0.2版本,因为的版本号必须与匹配才能工作……
在此之后,只需设置PATH环境变量并配置Visual Studio项目以指向包含OCCI DLL、库和包含文件的目录,并将TNS_ADMIN环境变量设置为指向包含TNSNAMES.ORA文件的目录,该DLL文件定义了我正在尝试连接的数据库。有关此设置的逐步说明,请参阅Mark Williams编写的此blog post。尽管这篇文章是为Visual Studio2008编写的,但2010年的过程仍然是相同的,只是版本#不同……
谢尔顿
https://stackoverflow.com/questions/11696215
复制相似问题