这个程序最后声明对象的时候为什么要用指针?? 400 报错
#include <windows.h>
HINSTANCE hInstance;
class CFrameWnd
{
HWND hwnd;
public:
CFrameWnd(); //也可以在这里调用Create()
virtual ~CFrameWnd();
int Create(); //类就留意这一个函数就行了!
BOOL ShowWnd();
};
CFrameWnd::CFrameWnd(){}
CFrameWnd::~CFrameWnd(){}
int CFrameWnd::Create() //封装创建窗口代码
{
WNDCLASS wndcls;
wndcls.style=0;
wndcls.cbClsExtra=0;
wndcls.cbWndExtra=0;
wndcls.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);
wndcls.hCursor=LoadCursor(NULL,IDC_CROSS);
wndcls.hIcon=LoadIcon(NULL,IDC_ARROW);
wndcls.hInstance=hInstance;
wndcls.lpfnWndProc=DefWindowProc;//默认窗口过程函数。
//大家可以想象成MFC通用的窗口过程。
wndcls.lpszClassName="窗口类名";
wndcls.lpszMenuName=NULL;
RegisterClass(&wndcls);
hwnd=CreateWindow("窗口类名","窗口实例标题名",WS_OVERLAPPEDWINDOW,0,0,600,400,NULL,NULL,hInstance,NULL);
return 0;
}
BOOL CFrameWnd::ShowWnd()//显示更新窗口
{
ShowWindow(hwnd,SW_SHOWNORMAL);
UpdateWindow(hwnd);
return 0;
}
class CWinApp1
{
public:
CFrameWnd* m_pMainWnd;//在真正的MFC里面
CWinApp1* m_pCurrentWinApp;//指向应用程序对象本身
CWinApp1();
virtual ~CWinApp1();
virtual BOOL InitInstance();//MFC原本是必须重载的函数,最重要的函数!!!!
virtual BOOL Run();//消息循环
};
/////////////
CWinApp1::CWinApp1()
{
m_pCurrentWinApp=this;
}
CWinApp1::~CWinApp1(){}
BOOL CWinApp1::InitInstance()
{
m_pMainWnd=new CFrameWnd;
m_pMainWnd->Create();
m_pMainWnd->ShowWnd();
return 0;
}
BOOL CWinApp1::Run()//////////////////////封装消息循环
{
MSG msg;
while(GetMessage(&msg,NULL,0,0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return 0;
} //////////////////////////////////////////////////////封装消息循环
CWinApp1 theApp; //应用程序对象(全局)
int WINAPI WinMain( HINSTANCE hinst, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
hInstance=hinst;
CWinApp1* pApp=theApp.m_pCurrentWinApp;
pApp->InitInstance();
pApp->Run();
//上面为什么要用指针?有什么好处?直接下面这样也能实现啊
CWinApp1 pApp;
pApp.InitInstance();
pApp.Run();
return 0;
}
CWinApp1* pApp=theApp.m_pCurrentWinApp;//theApp是一个全局的App对象,就是说你在其他地方还要用到它的,这里用指针是取它的地址,相当于调用这个全局对象
pApp->InitInstance();版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。