我自己编写了一个单文档的小程序,然后运行程序之后出现中断,进过调试寻找到是winocc.cpp中的void CWnd::GetProperty和void CWnd::SetProperty两个函数中的_ASSERT(m_pCtrlSite != NULL);均出现错误。希望大神能帮忙指出错误类型!!!谢谢!!!
这是出错部分代码!!
float* try::fun1( )//创建指定区域
{ GET dlg;
dlg.DoModal();
static float h[4]={dlg.m_x1,dlg.m_y1,dlg.m_x2,dlg.m_y2};
CMapX m_ctrlMapX; // 调试的时候出现cMapx hWnd=0x0000000
CMapXLayers allLr=m_ctrlMapX.GetLayers(); //取得图层集合
CMapXLayer Lr=allLr.CreateLayer("Stlayer",NULL, 2, 32);
CMapXStyle lineSty; //线图元
COleVariant vt;
vt.vt=VT_DISPATCH;
CMapXFeature newFeature; //新建图元
CMapXPoint pt; //点图元
CMapXPoints pts; //点集合
pt.CreateDispatch(pt.GetClsid());
pts.CreateDispatch(pts.GetClsid());
pts.RemoveAll();
pt.Set(dlg.m_x1,dlg.m_y1); //线的起点
pts.Add(pt);
pt.Set(dlg.m_x2,dlg.m_y2); //线的终点
pts.Add(pt);
vt.pdispVal=pts.m_lpDispatch;
vt.pdispVal->AddRef();//此句不可缺
CMapXFeatureFactory factory=m_ctrlMapX.GetFeatureFactory();
CMapXFeature sidefeature=factory.CreateLine(vt);
//创建线图元
lineSty=sidefeature.GetStyle(); //设置线图元的风格
lineSty.SetLineColor(miColorBlue);
lineSty.SetLineStyle(36);
sidefeature.SetStyle(lineSty.m_lpDispatch);
Lr.AddFeature(sidefeature);
Lr.Refresh(); //将创建的图元加入到图层中
return h;
}