有一EXE形式的COM,应该如何调用它?

解决方案 »

  1.   

    CoCreateInstance() 创建对象实例,然后系统会帮你调用EXE
      

  2.   

    CoCreateInstance()的第一个参数CLSID可以从注册表的HKCR/CLSID分支获取,第三个参数dwClsContext需要指定CLSCTX_LOCAL_SERVER
      

  3.   

    楼上两位朋友,有没有相关实例代码?比如,基于EXE的COM的名称为MILL.EXE,
    该怎么调?
      

  4.   

    哦.我有调用一个DLL,
    在开头可以写#import "TEXT.dll" no_namespace
    这样,这个DLL可以用CoCreateInstance()调用;
    EXE的怎么#import?本人初学,望多包涵.
      

  5.   

    exe注册了,你知道CLSID,就可以调用API了
      

  6.   

    CLSID不知道,是怎么用代码得来的?查注册表?
      

  7.   

    //////////////
            加载基于EXE的COM组件:MILL.EXE
            
            在注册表中查到MILL.EXE的CLSID为:{8DA47673-C890-410E-947A-F0569742EFF3}
            
            怎么加载起来?代码如下,但说加载不到,请知道的朋友说说.
            ///////////////////////////////////////////////////////////////        HRESULT hreMill;        CLSID clsMill; //得到床身的CLSID:
    hreMill=CLSIDFromProgID(OLESTR("CVMMILL.Document"),&clsMill);    //定义床身的类:
    _Document *Mill; //加载床身:
    hreMill=CoCreateInstance(clsMill,NULL,CLSCTX_INPROC_SERVER,__uuidof(_Document),(LPVOID *) &Mill);
        
    hreMill=CoCreateInstance(clsMill,NULL,CLSCTX_INPROC_SERVER,__uuidof(_Document),(LPVOID *) &Mill);
        
      

  8.   

    你没有仔细看我在2楼的留言,注意用CLSCTX_LOCAL_SERVER