有个DLL,是一个COM的服务器,注册后,怎么在程序里使用呢?怎么知道CLSID(查找注册表???)没有相关的.H文件和文档,如何使用这个COM服务器?怎么知道里面哪些INTERFACE和METHOD

解决方案 »

  1.   

    1.法
    #import "directory\\filename.dll"这条指令会让编译器为你生成一些包装类(智能指针),在debug或releas下有生成的包装类文件。具体使用参见MSDN2.从[View]->[Classwizard]->[Add class...]->[From a type library],选择你的dll.3......
    用1的方法知道dll中的CLSID和IID.然后用CoCreateInstance()
      

  2.   

    已知COM的DLL文件名和路径,怎样实现注册,并且得到注册后的CLSID,IID呢?
      

  3.   

    先regsvr32.exe  XXXXXXX.dll
    方法一:
    复制CLSID,IID到客户端
    方法二:
    在客户端调用(注意你还须定义IID)
    CLSID clsid;
    HRESULT hr=::CLSIDFromProgID(OLESTR("COM注册名"),&clsid);
    if(SUCCEEDED(hr)){
      hr=::CoCreateInstance(clsid,NULL,CLSCTX_INPROC_SERVER,IID_IFactory,(void**)&pFactory)
      if(SUCCEEDED(hr)){
         pFactory->CreateInstance(NULL,IID_ITest,(void**)pTest);
         if(SUCCEEDED(hr)){
             pTest->DoSomething();
             pTest->Release();
         }
         pFactory->Release();
      }
     }