#include <afxwin.h> 
class sample:public CFrameWnd
{
public :
sample()
{
Create(NULL,"my window");
MessageBox("hello!");
}
};class App:public CWinApp
{
BOOL InitInstance();
BOOL ExitInstance();
};BOOL App::InitInstance()
{
MessageBox(0,"hello","info",MB_OK);
sample *obj;
obj=new sample();
m_pMainWnd=obj;
obj->ShowWindow(SW_SHOWMAXIMIZED);
return TRUE;
}BOOL App::ExitInstance()
{

return TRUE;
}抄的MFC入门的那个pdf上的代码。运行时报内存错误!不知是啥原因,请大虾看看代码哪里有问题!
或者说说可能出现问题的原因!

解决方案 »

  1.   

    怎么会呢!我在VS下试了下也是有运行是错!它跳到if (!pThread->InitInstance())
    {
    if (pThread->m_pMainWnd != NULL)
    {
    TRACE(traceAppMsg, 0, "Warning: Destroying non-NULL m_pMainWnd\n");
    pThread->m_pMainWnd->DestroyWindow();
    }
    nReturnCode = pThread->ExitInstance();
    goto InitFailure;
    }
    nReturnCode = pThread->Run();winmain.cpp文件中的上段代码中的第一行了!
      

  2.   

    obj=new sample();
    应该delete吧,但也只是内存泄漏,不会影响运行
      

  3.   

    #include <afxwin.h> 
    class sample:public CFrameWnd
    {
    public :
        sample()
        {
            
        }
       void DoCreate()
    {
    Create(NULL,"my window");
            MessageBox("hello!");
    }
    };
    BOOL App::InitInstance()
    {
        MessageBox(0,"hello","info",MB_OK);
        sample *obj;
        obj=new sample();
    obj->DoCreate();
        m_pMainWnd=obj;
        obj->ShowWindow(SW_SHOWMAXIMIZED);
        return TRUE;
    }//这样还可以,把create写在构造里,绝的怪怪的。