有一个原有某应用平台的的dll,有源码.
现在要转到另一应用平台,由于改平台不支持直接使用dll来扩展业务功能,而是采用com.
所以想把原有的dll改成com我想知道的是:
在改成com后,我在com的DllMain里做所有的全局数据的初时工作, 好像 在com 被注册到机器上就会执行dllmain.傻傻地问:是不是不管当前有没有用户使用该com,com都会维护已经被初始的全局变量,而不是没有用户使用被释放掉.直接问:com里怎么维护全局变量?
现在要转到另一应用平台,由于改平台不支持直接使用dll来扩展业务功能,而是采用com.
所以想把原有的dll改成com我想知道的是:
在改成com后,我在com的DllMain里做所有的全局数据的初时工作, 好像 在com 被注册到机器上就会执行dllmain.傻傻地问:是不是不管当前有没有用户使用该com,com都会维护已经被初始的全局变量,而不是没有用户使用被释放掉.直接问:com里怎么维护全局变量?
当被封装成dll时,它当然首先仍是个dll。只是它内部的东西符合了COM规范而已。
COM是比dll更抽象的概念,而不是平级。
因为分属不同进程,内存地址空间不同,DLL里面的全局变量各进程各有一份,不会共享.3,做成EXE的COM,假如A,B两个EXE去调用它,这样调用是跨进程调用,这样可以共享在COM的全局
变量.