// MainFrm.h
#include "layercontrollerdlg.h"
class CMainFrame : public CMDIFrameWnd
{


private:
CLayerControllerDlg m_LayerControllerDlg;//加了这个语句后构造函数失败了!郁闷的找不出原因阿。


};// MainFrm.cpp
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{


m_LayerControllerDlg.Create(CLayerControllerDlg::IDD, this);


}

解决方案 »

  1.   

    CMainFrame::CMainFrame()
    {
    // TODO: add member initialization code here
    m_pDoc=GIS_CreateDocObject();
    m_pDoc->AddMap("地图文档");

        m_pDoc->SetModified(false);
       // m_pCurrentModuleState=AfxGetModuleState();
    m_bCurrentIsMap=true;}
    这是构造函数,在类声明中加了CLayerControllerDlg m_LayerControllerDlg以后构造函数就失败了,可以编译,不报错。
    但是在调试的时候发出这样的异常消息:
    Unhandled exception in GDIMDIDEMO.exe(KERNEL32.DLL):0xE06D7363:MicroSoft
    C++ Exception
      

  2.   

    CLayerControllerDlg m_LayerControllerDlg这个对象对应的对话框上有一个ActiveX控件
      

  3.   

    换成 CLayerControllerDlg *m_LayerControllerDlg;
    试试
      

  4.   

    在 CMainFrame::OnCreate中要初始化时不行啊,
    m_LayerControllerDlg->Create(CLayerControllerDlg::IDD,this);
    编译可以,不能执行阿。