对dll可以动态加载,然后通过名字取得方法指针,从而实现该功能,com对象能否有类似的方法可以采用。

解决方案 »

  1.   

    about 100 lines source code
      

  2.   

    to Gongxy: give the sample code,ok? thanks. 
       
      

  3.   

    好麻烦的说,先把dll load(loadlibrary)进来,然后用getprocaddress去
    得到dllgetclassobject,调用它得到你要的对象的IUnknown接口。
    根据函数名去引用函数,如果com 对象实现了Idispatch接口,
    那就好办了,用idispatch 的方法getidsofnames和invoke就行了。
    对于没有实现idispatch 的com,首先去读类型库(
    dll注册过可在注册表中读,如果没有的话就把dll资源中的tlb文件读出来)
    ,然后找你要的函数在哪个接口中,然后用queryinterface得到
    该接口,接口都有了,你就能到到v-table,然后根据你要的函数
    在该接口中的相对位置,在v-table中去找该函数的地址。