She*_* R. 2 c++ runtime-error visual-studio-debugging oracle11gr2 occi
我正在使用Visual Studio开发一个使用OCCI查询Oracle 11g数据库的C++程序.这是一个非常简单的程序,只进行一次查询,但我一直遇到运行时错误.我首先尝试在VS2010中开发这个,下载11.2.0.3 OCCI文件,并且我得到了一个错误,该错误与不在oci.dll中的heap-alloc过程的入口点有关.我得到的印象是这个错误可能是因为我的Oracle客户端是11.2.0.1.
由于我无法出于支持原因将我的客户端升级到更高版本,因此我决定回退使用Visual Studio 2005,因为我在Oracle的OCCI文档中读到了已经在11g中安装了vc8版本的OCCI库和DLL客户.所以我将我的C++/OCCI程序移到了VS 2005,现在我得到了一个不同的调试运行时错误:一个错误消息框说"应用程序无法正确初始化",并且来自VS Output窗口中的加载器的消息说"ldrpWalkImportDescriptor" ()无法探测[ORACLE CLIENT DIR]\oci\lib\msvc\vc8\oraocci11d.dll的清单,ntstatus 0xc0150002"我没有看到oraocci11d.dll的清单文件,所以我很茫然如何解决这个问题.任何更精通OCCI的VS设置的人都可以提出建议吗?提前致谢...
谢尔顿
我注意到这里的一些OCCI问题没有得到解答,所以我觉得有义务解释我是如何解决我的问题的.正如在OCCI线程中经常提到的,关键是要下载适当版本的Oracle Instant Client.我曾尝试使用我已安装的运行时客户端中的文件,但该客户端的版本号为11.2.0.1,而VSCI10的OCCI需要11.2.0.2或11.2.0.3版本.所以我最终为OCCI和Instant Client下载了版本11.2.0.2,因为版本号必须匹配才能工作......
之后,只需设置PATH环境变量并将Visual Studio项目配置为指向包含OCCI DLL,库和包含文件的目录,并将TNS_ADMIN环境变量设置为指向包含该目录的目录. TNSNAMES.ORA文件,用于定义我尝试连接的数据库.有关此设置的分步说明,请参阅Mark Williams撰写的此博客文章.即使这篇文章是为Visual Studio 2008编写的,2010年的程序仍然是相同的,只是使用不同的版本#s ...
谢尔顿
| 归档时间: |
|
| 查看次数: |
2391 次 |
| 最近记录: |