解决方案 »

  1.   

    出现无法解析的外部符号,一般都是函数只定义,没有函数的实现。
    安装好了Oracle client之后,如果安装了开发者模式,就会提供oracle的头文件和库文件,
    建立好工程之后,先在工程名字上面右键Properties->VC++ Directories右边的Include目录和Library两个钟添加上安装目录下的include和lib,我这里是C:\app\Administrator\product\11.2.0\client_1\oci\include和C:\app\Administrator\product\11.2.0\client_1\oci\lib\msvc\vc9,搞定之后。
    好像,代码中少了一点东西吧 ~~
    添加如下的几行预处理命令,把lib包含进来,同样的,如果是动态链接库,也可以用#import "path/abc.dll" 来包含进来,代码应该是这样的。
    测试生成和运行都没有问题,连接不上服务器,服务器不通...
    #include <iostream>
    #include <assert.h>
    using namespace std;
    #include <occi.h>
    #include <string>
    using namespace oracle::occi;
    #define LINUXOCCI
    #pragma comment(lib, "C:\\app\\Administrator\\product\\11.2.0\\client_1\\oci\\lib\\msvc\\oci.lib")
    #pragma comment(lib, "C:\\app\\Administrator\\product\\11.2.0\\client_1\\oci\\lib\\msvc\\ociw32.lib")
    #pragma comment(lib, "C:\\app\\Administrator\\product\\11.2.0\\client_1\\oci\\lib\\msvc\\oraocci11.lib")int main()
    {
    Environment *env = Environment::createEnvironment();
    assert(env != NULL);
    cout << "success" << endl; string name = "scott";
    string pass = "test";
    string srvName = "172.18.130.156:1521/test";
    try{
    Connection *conn = env->createConnection(name, pass, srvName);
    cout << "conn success" << endl;
    env->terminateConnection(conn);
    } catch (SQLException e) {
    cout << e.what() << endl;
    return -1;
    }
    Environment::terminateEnvironment(env);
    cout << "end!" << endl;
    return 0;
    }
      

  2.   


    就是这几招了,应该没有其它地方配置了吧。
    项目属性中C/C++的命令行附加选项,debug配置的附加oraocci10d.lib,release配置的附加oraocci10.lib。链接器的命令行附加选项也这样配置。再重启VS。