VC6下使用OCCI开发,其基本的设置方法如下:
vc6的那个默认的步骤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) ;
#endif
3.这一步最重要,要与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出来以来,
vc6的那个默认的步骤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) ;
#endif
3.这一步最重要,要与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与其它库进行集成时,尤其要注意这些配置,有的时候甚至出现不相容的情况。所以要根据实际情况进行选择。
当然,你可以使用MDD, MD方式来build。
到了VC7以后,OCCI相应的要求就少多了。
linux下当初OCCI是有很多bug的,除非打了9205及以后的补丁,不然,你几乎无法正常使用。
如果有再碰到类似问题,请及时回馈。
你的这个帖子我也将其帖到我的blog上去了。http://blog.csdn.net/iihero