比如在IE中, 同一进程的两个IE窗口如果都创建我的这个控件那全局就会出现两个IE都用一个全局变量的状况, 这是我不能接受的.
有什么办法改变这一情况么? 我就不能在activex中使用全局变量,同时有让控件支持同一进程多实例么?
有什么办法改变这一情况么? 我就不能在activex中使用全局变量,同时有让控件支持同一进程多实例么?
解决方案 »
- 菜单肿么这么窄?????!!!
- 简单问题 关于#define 定义问题
- 孙鑫老师的VC++深入详解教程及源码下载(pdf格式)
- 如何创建一个空的txt文件
- 关于accept和recv的阻塞非阻塞问题
- 客户端修改XML文件后,如何上传到服务器端?谢谢
- 如果知道一个可执行文件的路径,如何知道它的注册类名?
- 100分在线等待结果,关于设备环境(DC)的。留言就有分!!!!!!!!!!!!
- Visula C++写动态库调用winio.dll的问题
- -----我的短信程序调通了,正在完善中,完全VB版,哈哈哈。。。。。。
- 揭露金碟杭州分公司的罪恶
- 每次编译有COM的项目都有很多IDL输出,影响我的速度,能不能去掉那些多余的?
结果 同一进程的两个IE窗口如果都这个控件。只要在一个窗口中设置了信号,结果,另外一个窗口中的activex中的线程检测到有信号,也退出了,对于这中情况改怎么处理呀。
{
public:
virtual void RemoveAll();
virtual void LastWork(LPVOID _pGame);
void RemoveGame(CString _name);
void RemoveGame(LPVOID _pGame);
void AddGame(CString _game,LPVOID _pGame);
CInstansManage();
virtual ~CInstansManage();
protected:
CMapStringToPtr m_games;
};
我这里是一个游戏动态库的管理类,其实也是dll,有多个游戏共用,情况类似。
你应根据实例的名字(guid或名字)来区分,实际上,也就是需要一个管理实例的模块就象类厂。
实例的增加,减少都需要象这个类注册和注销,最后没有实例后,删除本身。或者你可以实现一个枚举接口,来访问每个实例。
你这个是写在客户端(调用COM) 的,来管理COM实例的,还是 写在COM里面 来管理 COM 还是COM中的线程的。
同一进程的两个IE窗口之间实际上并不是楼主所说的同一进程的多个实例,因此我不认为使用锁会
出现“一个IE工作的时候, 另一个IE挂起”的情况. 至于打开了两个IE进程的话,你的ActiveX控件将被分别映射到两个IE的进程空间之中。