ATL DLL被IE多次加载后全局数据共享的问题

myseemydog 2013-03-29 04:58:31
IE8 多选项卡打开。dll被加载了2次。但是dll中的全局变量是 共享的、、(HINSTANCE)_AtlBaseModule.GetModuleInstance()实例句柄是相同的。。


如何使每次加载dll的实力句柄不同。。。
...全文
137 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
蒋晟 2013-04-02
  • 打赏
  • 举报
回复
CreateProcess 因为标签页可能崩溃的原因,共享数据不能放在任何一个标签页进程
蒋晟 2013-04-01
  • 打赏
  • 举报
回复
IE8多选项卡打开时,每个标签页都可以有自己的进程,全局变量和内存地址都不是跨进程共享的。你可以自己再创建一个代理进程进行标签页之间的数据共享。
myseemydog 2013-04-01
  • 打赏
  • 举报
回复
引用 3 楼 jiangsheng 的回复:
IE8多选项卡打开时,每个标签页都可以有自己的进程,全局变量和内存地址都不是跨进程共享的。你可以自己再创建一个代理进程进行标签页之间的数据共享。
实际的情况是 操作tab1和tab2修改的都是tab2的那一份数据。无论使用多少个tab。都是 指向最后一个tab的内存的。。。 另外代理进程如何创建?
myseemydog 2013-03-30
  • 打赏
  • 举报
回复
引用 1 楼 fishion 的回复:
同一进程中加载同个dll多次其实也只会加载一次而已,再加载的只会使引用计数加1
那如果我将全局变量放入 ATL向导生成的那个类做成员变量AB。如何 得到这个ATL的类的实例(指针),让AB互相访问函数和变量呢?
fishion 2013-03-29
  • 打赏
  • 举报
回复
同一进程中加载同个dll多次其实也只会加载一次而已,再加载的只会使引用计数加1

3,245

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧