我在64位标准版本的windows 2003 server上安装了oracle(版本为10.2.0),在客户端(32位XP)上用VC6.0通过OCI访问数据库,但是我在工程中加入了oci.lib后,编译就出现错误:OCI\LIB\MSVC\oci.lib : fatal error LNK1113: invalid machine type,好像是说机器版本不对,在服务器上编译也是出现同样的问题,我的oci.lib是从服务器上的“10.2.0\db_1\OCI\lib\MSVC”目录下拷贝过来的,我也在oracle的网站上下载了各个版本的instantclient,但是所有的版本中都没有oci.lib文件,只有oci.dll文件,请问各位大虾们如何解决这个问题啊???急切盼望!!!

解决方案 »

  1.   

    oci访问数据用的一直是oci.dll,不是oci.lib,没有用过oci.lib
      

  2.   

    to 1楼的:楼主是想通过oci.lib来编译链接oci客户端应用程序,显示链接,显然需要oci.lib,运行时则不需要。除非你直接loadLibrary。
    to 楼主:
       你的错误,应该是32位x86与64位x86的二进制库冲突造成的。
       64位win2003下边装的应该是64bit x86 Oracle,那么它的oci.lib拷到32位windows上编译链接,肯定会出问题。
       你应该找一个32位windows下的oracle10.2中的oci.lib,在32位下边编译链接。
       至于你说在64位服务器端编译,那更不行,因为什么?因为你用的vc6,vc6到它的deadline时,也没有出现用于64位操作系统上的vc6环境,它只能用于32位环境。除非你用vc7.1或以上。
       我们编程,不能光看到IDE,因该直接看到使用的编译器的实质。
      

  3.   

    找了很久也没有找到32位的oci.lib,我现在用LoadLibrary直接去访问了