例如生成一个新的sdi程序
他启动的时候
CCommandLineInfo cmdInfo;
//cmdInfo.m_nShellCommand = CCommandLineInfo::FileNothing;
ParseCommandLine(cmdInfo);
if (!ProcessShellCommand(cmdInfo))
return FALSE;
我记得只要加上//部分就可以了,但为什么编译通过
运行失败,那位大哥知道应该如何做。谢谢

解决方案 »

  1.   

    位置不对:
    CCommandLineInfo cmdInfo;
    ParseCommandLine(cmdInfo);
    cmdInfo.m_nShellCommand = CCommandLineInfo::FileNothing;
      

  2.   

    CCommandLineInfo cmdInfo;
    cmdInfo.m_nShellCommand = CCommandLineInfo::FileNothing;
    //去除多文档初始化时候的子窗口
    ParseCommandLine(cmdInfo);对于多文档可以,不知道单文档是否有效!
      

  3.   

    两种方法都对。实际上楼主的更好一些,按晓风的方法,将不再允许应用程序处理任何命令行参数。出错的原因在于“禁止创建空文档”只能用于 MDI,不能用于 SDI。
      

  4.   

    对于SDI文档,据我所知,不可能禁止程序运行的时候自动创建新的文档,
    //SDI
    CCommandLineInfo cmdInfo;
    ParseCommandLine(cmdInfo);
    if (!ProcessShellCommand(cmdInfo))
    return FALSE;
    m_pMainWnd->ShowWindow(SW_SHOW);
    m_pMainWnd->UpdateWindow();
    如果执行cmdInfo.m_nShellCommand = CCommandLineInfo::FileNothing;
    m_pMainWnd就无法创建,当然无法运行了,好像SDI下面禁止程序运行的时候自动创建新的文档也是一件没有意义的事情