代码如下,问题:
没有命令行参数传入的时候,程序不运行,当有命令行参数传入时,程序非法操作,请大家帮忙,看哪里出现了问题。BOOL CXXXX::InitInstance()
{
  CCommandLineInfo   m_cmdInfo;   
  ParseCommandLine(m_cmdInfo);   
  //AfxMessageBox(m_cmdInfo.m_strFileName );
  if   (!ProcessShellCommand(m_cmdInfo))  
  {
return   FALSE; 
  }
else
  {
AfxMessageBox(m_cmdInfo.m_strFileName );
  } SetRegistryKey(_T("xxxxx"));
        .....................
}

解决方案 »

  1.   

    看不出 请楼主DEBUG, 看看出错位置
      

  2.   

    你前面没有加文档模板吧。ProcessShellCommand需要调用文档模板。看看向导生成的代码。
      

  3.   

    应该放到哪个位置不会出错呢?BOOL CxxxServerApp::InitInstance()
    { SetRegistryKey(_T("xxxxx")); if (!AfxSocketInit())
    {
    AfxMessageBox(IDP_SOCKETS_INIT_FAILED);
    return FALSE;
    } // Standard initialization
    // If you are not using these features and wish to reduce the size
    //  of your final executable, you should remove from the following
    //  the specific initialization routines you do not need.#ifdef _AFXDLL
    Enable3dControls(); // Call this when using MFC in a shared DLL
    #else
    Enable3dControlsStatic(); // Call this when linking to MFC statically
    #endif InitCommonControls(); // Create the tray icon
    if (!m_TrayIcon.Create(WM_ICON_NOTIFY, // Icon notify message to use
    _T("xxxxx"), // tooltip
    LoadIcon(IDI_xxxPSERVER), // Icon
    IDR_POPUP_MENU)) // ID of tray icon
    return -1; int nLogLevel = GetProfileInt("Settings", "LogLevel" , 1); if (nLogLevel)
    {
    // create configuration filename
    CString strFileName; GetAppDir(strFileName);
    strFileName += "xxxxx.txt"; m_LogFile.SetLogLevel(nLogLevel); // open log file
    m_LogFile.Open((LPCTSTR)strFileName);
    } CApplicationDlg dlg;
    m_pMainWnd = &dlg;
    int nResponse = dlg.DoModal();
    if (nResponse == IDOK)
    {
    // TODO: Place code here to handle when the dialog is
    //  dismissed with OK
    }
    else if (nResponse == IDCANCEL)
    {
    // TODO: Place code here to handle when the dialog is
    //  dismissed with Cancel
    }

    // Since the dialog has been closed, return FALSE so that we exit the
    //  application, rather than start the application's message pump.
    return FALSE;}
      

  4.   

    真是整不明白啊,看来,不会走就想跑还是有一定难度的。有没有相关的资料学习下啊,我google找了些有些不符合我的这个问题。谢谢大家的帮助。