有一个原有某应用平台的的dll,有源码.
现在要转到另一应用平台,由于改平台不支持直接使用dll来扩展业务功能,而是采用com.
所以想把原有的dll改成com我想知道的是:
在改成com后,我在com的DllMain里做所有的全局数据的初时工作, 好像 在com 被注册到机器上就会执行dllmain.傻傻地问:是不是不管当前有没有用户使用该com,com都会维护已经被初始的全局变量,而不是没有用户使用被释放掉.直接问:com里怎么维护全局变量?

解决方案 »

  1.   

    COM组件可以作成dll,也可以作成exe,或者其它。
    当被封装成dll时,它当然首先仍是个dll。只是它内部的东西符合了COM规范而已。
    COM是比dll更抽象的概念,而不是平级。
      

  2.   

    1,注册只是把这个COM的文件位置信息,类型名称等写入注册表,以便查找.跟楼主无关.2,做成DLL的COM 还是DLL..假如A,B两个EXE同时使用这样一个COM,这样一般是进程内调用,
    因为分属不同进程,内存地址空间不同,DLL里面的全局变量各进程各有一份,不会共享.3,做成EXE的COM,假如A,B两个EXE去调用它,这样调用是跨进程调用,这样可以共享在COM的全局
    变量.