为什么用com写的dll需要注册而普通的dll无须注册,只要LoadLibrary就能用?
   一个普通的dll(比如导出一个比较大小的函数的dll),除了com的那一套(QueryInterface、addRef、Release...),还要 添加哪些代码才需要注册?
   还有,哪位大侠能推荐点资料让我弥补一下这个空当?

解决方案 »

  1.   

    COM只暴露接口,无法知道具体实现类。它们是通过类厂来创建的。因此在能够创建这些对象之前,必须先向SCM注册这些对象。
    普通的DLL是导出具体类的,可以直接创建对象。
    可以使用ATL创建COM组件,无需关心如何处理注册问题。
    可以看看深入解析ATL
      

  2.   

    多谢david_shar的帮助,不过我现在面临的任务是手工创建一个COM组件,编译结果为一个dll文件,然后注册,之后在客户端使用这个组件,所以就有了这个问题。