单进程IE下运行OCX崩溃
单进程IE,打开多个tab页,都调用my.ocx。会崩溃。
当打开的只有一个tab页时,运行正常。
当打开第二个tab页调用my.ocx时。就会崩溃。
如果多进程,每个tab一个进程,则不会崩溃。
ocx是文档视图结构。
崩溃是在myctrl中的oncreate()里面崩溃。
下面是oncreate里面的部分函数。
if (COleControl::OnCreate(lpCreateStruct) == -1)
return -1;
OnActivateInPlace(TRUE, NULL);//by mjh
AfxEnableControlContainer();
pDocTemplate = new CSingleDocTemplate(
IDR_MainTools,
RUNTIME_CLASS(CKCXZTDoc),
RUNTIME_CLASS(CMyPanel), // 主 SDI 框架窗口
RUNTIME_CLASS(CKCXZTView));
CDocument *pDoc = pDocTemplate->CreateNewDocument();
m_pFrame = pDocTemplate->CreateNewFrame(pDoc,NULL);
运行到m_pFrame = pDocTemplate->CreateNewFrame(pDoc,NULL);就会崩溃。
pDoc 和pDocTemplate都不是NULL。