描述:
同一个windows打开两个web,都通过下面
<OBJECT ID="CircleCtl" CLASSID="CLSID:96C0B59B-EA3A-4D99-A0B0-DEE63387EFEC">
</OBJECT>
的方式创建各自(如果是的话)的对象。
1、是创建各自的对象,还是说两个web只创建了一个对象,对应内存中的同一份
拷贝?
举个例子来说,第一个web中的CircleCtl某一个属性为0,然后调用其接口加1。
然后,在第二个web中,调用同样的接口加1,那么此时第二个CircleCtl中的这个
属性的值是1还是2?
2、如果是1,如何实现出2的效果?
3、如果是2,如何实现出1的效果?
不知道这样描述能不能让各位明白……
非常感谢!!
解决方案1:
应该和系统中运行两个NOTEPAD一样,每一个事例处理自己的数据,但是NOTEPAD的程序段在内存中只有一个.
解决方案2: 不做任何处理就是1,如果采用共享数据段,则可以做到2。
#pragma data_seg("CurrentHwnd")
HWND hOldWnd = 0;
#pragma data_seg()
#pragma comment(linker, "/SECTION:CurrentHwnd,RWS")
上面就是共享数据段,其中hOldWnd在所有进程间共享,就是你的要求。
各自创建各自的对象
因为在不同的进程空间里面.