在VS中编写C++中的MFC出现未加载一些文件的错误
最近正在跟着视频学习MFC编程,视频中使用的是VC6,由于在Win7的环境下,VC6很难配置,所以我使用的是VS2013,首先,使用Win32项目改写成为MFC程序.不知...
最近正在跟着视频学习MFC编程,视频中使用的是VC6,由于在Win7的环境下,VC6很难配置,所以我使用的是VS2013,首先,使用Win32项目改写成为MFC程序.不知哪里写错误了或者是哪里配置错了,出现了错误,跟踪下去出现了这个的错误.学习到CDocument类的时候的错误,代码如下:
代码如下
class CDoc:public CDocument
{
};
class CMyApp :public CWinApp
{
public :
BOOL InitInstance();
};
CMyApp theApp;
class CMyView:public CEditView
{
DECLARE_DYNAMIC(CMyView)
DECLARE_MESSAGE_MAP()
public:
virtual VOID OnDraw(CDC* pDC);
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
protected:
private:
};
IMPLEMENT_DYNAMIC(CMyView,CEditView)
BEGIN_MESSAGE_MAP(CMyView,CEditView)
ON_WM_CREATE()
END_MESSAGE_MAP()
int CMyView::OnCreate(LPCREATESTRUCT lpCreateStruct){
return CEditView::OnCreate(lpCreateStruct);
}
VOID CMyView::OnDraw(CDC* pDC){
}
class CMyFrame :public CFrameWnd
{
DECLARE_MESSAGE_MAP()
public:
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
};
BOOL CMyApp::InitInstance(){
CMyFrame* pFrame = new CMyFrame();
CCreateContext cct;
cct.m_pCurrentDoc = new CDoc();
cct.m_pNewViewClass = RUNTIME_CLASS(CMyView);
//pFrame->Create(NULL, L"Cview");
pFrame->LoadFrame(IDR_MENU1,WS_OVERLAPPEDWINDOW,NULL,&cct);//错误出现在这个函数里,这个函数执行完后,返回一个False;但是在这里没有报错
m_pMainWnd = pFrame;
m_pMainWnd->ShowWindow(SW_SHOW);//到了这里报错
m_pMainWnd->UpdateWindow();
return TRUE;
} 展开
代码如下
class CDoc:public CDocument
{
};
class CMyApp :public CWinApp
{
public :
BOOL InitInstance();
};
CMyApp theApp;
class CMyView:public CEditView
{
DECLARE_DYNAMIC(CMyView)
DECLARE_MESSAGE_MAP()
public:
virtual VOID OnDraw(CDC* pDC);
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
protected:
private:
};
IMPLEMENT_DYNAMIC(CMyView,CEditView)
BEGIN_MESSAGE_MAP(CMyView,CEditView)
ON_WM_CREATE()
END_MESSAGE_MAP()
int CMyView::OnCreate(LPCREATESTRUCT lpCreateStruct){
return CEditView::OnCreate(lpCreateStruct);
}
VOID CMyView::OnDraw(CDC* pDC){
}
class CMyFrame :public CFrameWnd
{
DECLARE_MESSAGE_MAP()
public:
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
};
BOOL CMyApp::InitInstance(){
CMyFrame* pFrame = new CMyFrame();
CCreateContext cct;
cct.m_pCurrentDoc = new CDoc();
cct.m_pNewViewClass = RUNTIME_CLASS(CMyView);
//pFrame->Create(NULL, L"Cview");
pFrame->LoadFrame(IDR_MENU1,WS_OVERLAPPEDWINDOW,NULL,&cct);//错误出现在这个函数里,这个函数执行完后,返回一个False;但是在这里没有报错
m_pMainWnd = pFrame;
m_pMainWnd->ShowWindow(SW_SHOW);//到了这里报错
m_pMainWnd->UpdateWindow();
return TRUE;
} 展开
1个回答
展开全部
这个应该是你把Win32程序改成MFC程序引起的吧,你重新建一个MFC的单文档或者多文档窗口程序跟一下应该就没有问题了。LoadFrame失败了,后面ShowWindow的时候肯定会报错
更多追问追答
追问
是Win32改的,我就是想知道我哪里改错了.我是跟着视频写的代码,怎么就有错呢
追答
最有可能的就是那个ID的参数有问题,看样子像是使用了一个菜单的资源,而这个资源并不能实际作为Frame进行后续的创建窗口等一系列的操作,最终Load失败了。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询