程序编译成功,但运行出错.在InitInstance() 函数中设置断言发现m_pMainWnd为NULL,我猜这里不应该当是这样的.那有可能是什么原因? 
BOOL CWLDispApp::InitInstance()
{
     ...
     ASSERT(m_pMainWnd != NULL);    // 这里m_pMainWnd该不该为NULL?     if (!ProcessShellCommand(cmdInfo)) // 程序到这一步出错
return FALSE;
     ...
} 那位大虾帮帮忙啊!

解决方案 »

  1.   

    看你 Create 主窗口是否成功了。
      

  2.   

    看你 Create 主窗口是否成功了。
    ------------------------
    你是说CMainFrame::Create, 但最先运行的是InitInstance()函数啊, 在InitInstance()时就失败了,其他都还没运行到呢
      

  3.   

    就应该是NULL吧.你那个地方还没创建窗口呢
      

  4.   

    但我在另外一个程序里m_pMainWnd就不是NULL啊.况且后面还有这两个语句呢,
    m_pMainWnd->ShowWindow(SW_SHOW);
    m_pMainWnd->UpdateWindow();
    要是m_pMainWnd为空,怎么显示窗口.反正到这一步就没成功.
    if (!ProcessShellCommand(cmdInfo)) // 程序到这一步出错
    return FALSE;
    我想是因为m_pMainWnd == NULL的原因.但我不知道为什么m_pMainWnd 会是 NULL
      

  5.   

    似乎是CFrameWnd::OnCreate失败了
    CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
    {
        if (CFrameWnd::OnCreate(lpCreateStruct) == -1)  // 这一步失败了
    return -1;
        ...

    这又会是什么原因呢?