OCCI C++应用程序的Visual Studio调试运行时错误

问题描述:

我正在使用Visual Studio开发一个使用OCCI查询Oracle 11g数据库的C++程序。这是一个非常简单的程序,只能进行单个查询,但是我一直在运行时遇到错误。我首先尝试在VS2010中开发这个功能,下载11.2.0.3 OCCI文件,并且我得到了一个错误,这个错误与oci.dll中没有的堆分配过程的入口点有关。我得到的印象是这个错误可能是由于我的Oracle客户端是11.2.0.1。OCCI C++应用程序的Visual Studio调试运行时错误

由于我无法支持的原因将客户端升级到更高版本,因此我决定退回到使用Visual Studio 2005,因为我在Oracle的OCCI文档中读到了OCCI库和DLL的vc8版本安装已经在11g客户端中。所以我把我的C++/OCCI程序移到了VS 2005上,现在我得到了一个不同的调试运行时错误:一个错误消息框提示“应用程序未能正确初始化”,并在VS Output窗口中显示一条来自加载器的消息:“ldrpWalkImportDescriptor ()无法探测[ORACLE CLIENT DIR] \ oci \ lib \ msvc \ vc8 \ oraocci11d.dll作为其清单,ntstatus 0xc0150002“我没有看到oraocci11d.dll的清单文件,所以我不知所措如何解决这个问题。谁能更熟练地为VSCI设置OCCI提出建议?在此先感谢...

谢尔顿

我注意到,一些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文件的目录,试图连接。有关此设置的逐步说明,请参阅Mark Williams的blog post。尽管这篇文章是为Visual Studio 2008编写的,但2010年的步骤仍然相同,只是版本号不同#

Sheldon