我要在 win32 SDK中使用ADO,环境是c,不是cpp,比如导入 msado15.dll,想要静态导入,因为我用的是C,不是C++,所以不能用 #import 这种语法,而且我看了在目录 “C:\Program Files\Common Files\SYSTEM\ADO”里面没有任何 *.h和 *.lib,我怎样静态导入 msado15.dll 调用里面的CreateInstance("ADODB.Connection") 方法创建连接呢? 我用的不是 MFC,不用动态连接的方式,静态没有办法解决么? 

解决方案 »

  1.   

    找了很多文章,说这样作: hmo= LoadLibrary("C:\Program Files\Common Files\SYSTEM\ADO\msado15.dll");
      hmo.
     hr   =   CreateInstance(__uuidof(Connection));//得到连接Connection对象   
    但是 VC提示我说 “error C2065: 'Connection' : undeclared identifier”,这个需要导入什么 *.h文件呢?
      

  2.   

    不是还需要
    FARPROC GetProcAddress(
      HMODULE hModule,    // handle to DLL module
      LPCSTR lpProcName   // function name
    );
    才能使用dll中的函数吗?
      

  3.   

    但是不能解决程序不认 Connection,ResultSet这些对象的问题啊,我现在把 msado15.tlh,和  msado15.tli文件的内容拷贝到一个 test.h里面,然后在我的程序 include这个test.h,但是出现错误: “d:\program files\microsoft visual studio\vc98\include\comdef.h(17) : fatal error C1189: #error :  Native Compiler support only available in C++ compiler”好像不能这样直接用 COM对象,还少什么步骤才能用COM对象ADO?
      

  4.   

    我们老师以前讲过,好像要用什么#ifndef之类的,不过我不会用这个,对不起了
      

  5.   

    网上几乎没有任何例子供参考,都是 C++调用ADO,现在是 C,但是C里面又不能用 comdef.h,等于 COM也使用不了了! 没有办法吗?
      

  6.   

    CSDN里面的帖子都看了一遍! 都是转移话题,把C语言的问题转移到 MFC C++上面 !