2017-08-06 31 views
0

我试图缩短外国代码。我认为我可以保存一个变量。C++不正确不需要重新声明类成员变量MFC手工解决方案/项目MS VS 2015

以下给出的代码是确定的,并显示一个Windows框架。

#include <afxwin.h> 
// from source: http://www.codersource.net/2010/01/30/mfc-tutorial-part-1/ 
class MFC_Tutorial_Window :public CFrameWnd 
{ 
public: 
    MFC_Tutorial_Window()  
    { 
     Create(NULL, "MFC Tutorial Part 1 CoderSource Window"); 
    } 
}; 

class MyApp :public CWinApp 
{ 
    MFC_Tutorial_Window *wnd; 

public: 
    BOOL InitInstance() 
    { 
     wnd = new MFC_Tutorial_Window(); 
     m_pMainWnd = wnd;       
     m_pMainWnd->ShowWindow(1); 
     return 1; 
    } 
}; 

MyApp theApp; 

经过我的改名后,它不再起作用。没有生成错误。但它没有显示一个框架。

#include <afxwin.h> 
// from source: http://www.codersource.net/2010/01/30/mfc-tutorial-part-1/ 
// and changed by me 

class MFC_Tutorial_Window :public CFrameWnd 
{ 
public: 
    MFC_Tutorial_Window() 
    { 
     Create(NULL, "MFC Tutorial Part 1 CoderSource Window"); 
    } 
}; 

class MyApp :public CWinApp 
{ 
    // del MFC_Tutorial_Window *wnd; 
    MFC_Tutorial_Window *m_pMainWnd; // ins 


public: 
    BOOL InitInstance() 
    { 
     // del wnd = new MFC_Tutorial_Window(); 
     // del m_pMainWnd = wnd; 
     m_pMainWnd = new MFC_Tutorial_Window(); // ins 
     m_pMainWnd->ShowWindow(1); 
     return 1; 
    } 
}; 

MyApp theApp; 

这是怎么回事?

+1

你不重新声明变量'm_pMainWnd'?我不能在第一个代码中看到它的声明,那么为什么在第二个例子中创建成员变量'm_pMainWnd'?试着删除行'MFC_Tutorial_Window * m_pMainWnd;' –

+0

现在它工作。谢谢你的提示。现在我可以理解这种行为。 – CarpeDiemKopi

+0

Np队友,很高兴帮助。只是发布它的意见,所以你可以标记这个线程作为回答,问候:) –

回答

1

问题是在重新声明成员变量MFC_Tutorial_Window *m_pMainWnd;,没有这一行它会工作。

相关问题