本文所讨论的内容基于以下环境:
Microsoft Visual C++ 6.0
ORACLE 8i (8.1.7)
当前版本:1.0 (041221)
声明:本文所述的某些操作可能对系统产生重大影响,请慎重操作!本人不对此产生的任何后果负责!
Pro*C/C++为C/C++语言访问ORACLE数据库提供了极大的方便,但是,在编译的时候往往需要在命名行模式下编译pc文件,而目前多数开发都是在VC++这种整合开发环境中完成的,要在两者之间不停的切换,不仅麻烦而且对于调试也相当不便。
在VC++中,提供了对于“自定义编译步骤”的设定,可以让我们自己来定义如何处理PC文件。现作一简单介绍:
首先,确保你安装了ORALCE的Pro*C/C++。
然后,运行Visual C++,打开一个工程文件(Workspace),自定义编译步骤仅可针对某一工程。选择“Project”->“Settings...”。选择设置哪个配置,选“All Configrations”可以覆盖所有配置。
先选中所有项目,点击“Linker”标签,在library列表内加入:oraSQL8.lib 。(不同的ORACLE版本,这个文件名会不同)
点击“Custom Build”标签,在“Commands”编辑框内加入如下内容:
call vcvars32.bat
proc iname="$(InputDir)\$(InputName).pc" include="%MSVCDIR%\include" include="$(MSDEVDIR)\..\vc98\include" code=cpp parse=partial
这里解释一下:
call vcvars32.bat
这个是用来设置VC的编译环境的。
proc iname="$(InputDir)\$(InputName).pc" include="%MSVCDIR%\include" include="$(MSDEVDIR)\..\vc98\include" code=cpp parse=partial
这个是直接调用proc的编译程序进行编译,$(InputDir)之类的VC都是会自己替换的,不需要我们手动处理。这里有一点要注意:传给Proc的参数最好加上引号,如果不幸里面有空格,那会被当成是另外一个参数,这种错误是很难查的。
在Outputs中加入如下内容:
$(InputDir)\$(InputName).cpp
这个是告诉VC最后生成的是哪个文件,好让它去取用。
点击“OK”保存,这样我们就可以直接在VC++中编辑Pro*C文件了。
另外,在属性设置中,直接点击pc文件也可以设置自定义编译步骤。