Oracle9i中OCCI在VC6下不能DEBUG的问题及解决方法(转贴)
2008-05-23 09:04
169 查看
原文:http://hi.baidu.com/hexiong/blog/item/5b2fdab48263ca738bd4b281.htmlvc6的那个默认的步骤debug肯定行不通。因为OCCI不按这种配置来compile.步骤如下:1. 确保oci.lib, oraocci9.lib在你的lib路径下边,确保oci/include在你的include路径下边2. 确保有下边的宏声明:(#define WIN32COMMON)#ifdef WIN32COMMON template <class T> void getVector( ResultSet *rs, unsigned int index, OCCI_STD_NAMESPACE::vector< T > &vect) ;#else template <class T> void getVector( ResultSet *rs, unsigned int index, OCCI_STD_NAMESPACE::vector< T* > &vect) ;#endif3.这一步最重要,要与VC6的默认配置相区别:在project settings的WIN32 DEBUG的"link"下边,将Category: Input下边的Object/library modules: 改为kernel32.lib user32.lib oci.lib msvcrt.lib msvcprt.lib oraocci9.lib (顺序不能错) 同时,勾上Ignore all default libraries, 并在Ignore libraries上边填上边libc.lib这要build出来以来,执行是不会出现堆错误的。并且可以debug。使用occi与其它库进行集成时,尤其要注意这些配置,有的时候甚至出现不相容的情况。所以要根据实际情况进行选择。当然,你可以使用MTD, MD方式来build。到了VC7以后,OCCI相应的要求就少多了。linux下当初OCCI是有很多bug的,除非打了9205及以后的补丁,不然,你几乎无法正常使用。如果有再碰到类似问题,请及时回馈。附加注释:可以看看$ORACLE_HOME/oci/samples下的make.bat中对应于OCCI的相关内容: :occimakeobj ott userid=scott/tiger intype=%1.typ outtype=%1out.type code=cpp hfile=%1h.h cppfile=%1o.cpp mapfile=%1m.cpp attraccess=private cl -GX -DWIN32COMMON -I. -I%ORACLE_HOME%/oci/include -I. -D_DLL -D_MT %1.cpp %1m.cpp %1o.cpp /link /LIBPATH:%ORACLE_HOME%/oci/lib/msvc oci.lib msvcrt.lib msvcprt.lib oraocci9.lib /nod:libc goto end :occimake cl -GX -DWIN32COMMON -I. -I%ORACLE_HOME%/oci/include -I. -D_DLL -D_MT %1.cpp /link /LIBPATH:%ORACLE_HOME%/oci/lib/msvc oci.lib msvcrt.lib msvcprt.lib oraocci9.lib /nod:libc goto end 至于为什么要/nod:libc,为什么要将msvcrt.lib msvcprt.lib 放到中间,那是因为oracle的occi库在build时依赖顺序不一样。你可以上msdn上查查msvcrt.lib和msvcprt.lib是干嘛用的。 在侯捷的win32多线程编程里也有相关描述。
相关文章推荐
- Oracle9i中OCCI在VC6下不能DEBUG的问题及解决方法
- Oracle9i中OCCI在VC6下不能DEBUG的问题及解决方法
- VC6编译的Debug版本程序中存在的问题及解决方法
- 深入剖析Java编程中的中文问题及建议最优解决方法 AbnerChai(转贴)
- MySQL字符集中文乱码终极解决方案和mysql查询中文问题解决方法[转贴]
- 关于VC6中突然不能设断点问题的解决方法
- Keil中 "STARTUP.A51" SET (SMALL) DEBUG EP问题解决方法
- OpenCV配置后debug出现问题(应用程序无法正常启动)的解决方法!!!
- MySQL字符集中文乱码终极解决方案和mysql查询中文问题解决方法[转贴]
- MySQL字符集中文乱码终极解决方案和mysql查询中文问题解决方法[转贴]
- [VS2008] Debug版本程序发布后 由于应用程序的配置不正确,应用程序未能启动,重新安装应用程序可能会纠正这个问题 解决方法
- ffmpeg在Win7 VS2010中debug通过,release出错的问题解决方法
- win7环境使用vc6的常见问题解决方法
- 解决Win8在DOS中使用debug调试汇编问题的方法
- VC6 和 VS2003 转换到VS2005 时可能会遇到的问题以及解决方法
- 一个VC6的工程转换为VS2008的工程后,编译找不到而且不能升级vc90.pdb文件的问题解决方法 2010-9-28 14:00
- 在VS.NET 2003中建立项目时遇到的两个问题及解决方法 (转贴)
- Android开发中Debug certificate expired问题解决方法
- 使用正式签名打包APK,打开debug模式报错的问题解决方法
- struts中datetimepicker使用问题 datetimepicker debug 以及 解决方法