1.不使用import
2.不使用classwizard即通常所说的三种方法的另外一个通过包含头文件 和使用 cocreateinstance库函数完成如果该com是第三方的,没有头文件及*_i.c 如何操作?

解决方案 »

  1.   

    看注册表可以硬写clsid,但接口形状没h咋得到?
      

  2.   

    Platform SDK 里有个工具:OLE-COM Object Viewer
    可以找找看
      

  3.   

    不使用 import 指令的话...我还真不知道怎么做。。
      

  4.   

    有方便的非要麻烦的?绕一圈的方法是:
    1.用OLE-COM Object Viewer 把COM组件里面的TYPELIB的信息提出来,保存成xxx.idl
    2.用midl命令把xxx.idl生成h和c如果COM组件支持IDispath接口的话,还有高级麻烦方法,完全不需要H和C
    首先要知道COM组件的CLSID或PROGID,用CoCreateInstance生成对象,然后QueryInterface出IDispath
    然后使用IDispath的GetIDsOfNames和Invoke调用函数,当然使用ATL的CComDispatchDriver(对IDispath的封装类),会让你轻松很多。
      

  5.   

    应该有个idl文件,需要编译一下,就会出现头文件。
      

  6.   

    idl文件里最后面,以文本方式打开就可以看见