一个最简单的MFC程序都运行不起来
#include <afxwin.h>
class CMyApp : public CWinApp
{
public:
virtual BOOL IntiInstance();
};
class CMyFrame : public CFrameWnd
{
public:
CMyFrame();
DECLARE_MESSAGE_MAP()
};
CMyApp theApp;
BOOL CMyApp::IntiInstance()
{
m_pMainWnd = new CMyFrame();
m_pMainWnd->ShowWindow(m_nCmdShow);
m_pMainWnd->UpdateWindow();
return true;
}
BEGIN_MESSAGE_MAP(CMyFrame,CFrameWnd)
END_MESSAGE_MAP()
CMyFrame::CMyFrame()
{
Create(NULL,"MYAPP Application");
}
这个程序我编译通过了,没有问题.但运行时什么都没有,于是我按F5运行,调试窗口中发现下面这句话:
Warning: m_pMainWnd is NULL in CWinApp::Run - quitting application.
这怎么会为空呢?请达人指点.
问题点数:20、回复次数:13Top
1 楼howtotell(从何谈起)回复于 2004-08-01 17:24:36 得分 0
用向导生成一个程序,看你缺少哪些东西.Top
2 楼shit748(我的未来都是梦!)回复于 2004-08-01 17:52:52 得分 0
为什么凭空手写一个就不行?Top
3 楼shit748(我的未来都是梦!)回复于 2004-08-01 17:53:24 得分 0
为什么凭空手写一个就不行?是不是在菜单里调整什么参数?
Top
4 楼BestBear(天外飞熊)回复于 2004-08-01 18:00:46 得分 0
#include <afxwin.h>
class CMyApp: public CWinApp
{
public:
virtual BOOL InitInstance();
};
CMyApp theApp;
class CMyFrame:public CFrameWnd
{
public:
CMyFrame();
};
BOOL CMyApp::InitInstance()
{
m_pMainWnd=new CMyFrame();
m_pMainWnd->ShowWindow(m_nCmdShow);
m_pMainWnd->UpdateWindow();
return TRUE;
}
CMyFrame::CMyFrame()
{
Create(NULL,"MYAPP Application");
}
注注注:project->setting->general->Use MFC in a Shared DLL(in the Microsoft Function Class Combox)Top
5 楼yujia120(永不停息)回复于 2004-08-01 18:06:12 得分 0
缺少库文件或者头文件
看看选项里和自动生成的哪不同Top
6 楼BestBear(天外飞熊)回复于 2004-08-01 18:12:37 得分 0
注意看我上面程序最下面的注注注!!Top
7 楼PasserbyX(路人X)回复于 2004-08-01 18:35:00 得分 0
CMyFrame MyFrameWnd;
m_pMainWnd=&MyFrameWnd;Top
8 楼110_110_110(急救)回复于 2004-08-01 19:02:27 得分 0
InitInstace;//write carefully
m_pMainWnd=new CMyFrame;
Top
9 楼mingbao(★情已逝★)回复于 2004-08-01 19:12:43 得分 0
删除构造函数中的Create( )
因为此时你的框架对象还没有生成,无法创建窗口资源
m_pMainWnd = new CMyFrame();
m_pMainWnd->Create(NULL,"MYAPP Application");
m_pMainWnd->ShowWindow(m_nCmdShow);
m_pMainWnd->UpdateWindow();
return true;
Top
10 楼BestBear(天外飞熊)回复于 2004-08-02 08:23:47 得分 0
口说无凭
把上面的程序运行看看就知道了Top
11 楼flyswift(溺水鱼)回复于 2004-08-03 20:18:24 得分 0
好像还是不行啊..
你们可以在自己的机器上跑一下,我也不知道怎么我这里老不行.老说m_pMainwnd is NULL.
谢谢各位达忍了Top
12 楼steel007(小宝)(工作在windows和linux平台上)回复于 2004-08-04 10:59:33 得分 20
楼主笔误:
virtual BOOL IntiInstance();
~~~~~~~~~~~~~~~~此处应为InitInstance()
修改后,在vc6中编译通过,并可以运行Top
13 楼BestBear(天外飞熊)回复于 2004-08-04 12:23:16 得分 0
我是在我机子上通过了,我才贴出来的
难道是楼上所说的错误???????
狂晕!!!!
Top




