用控制台来启动应用程序,想在后面加两个参数,mfc工程该如何接收?请大家指教

解决方案 »

  1.   

    ANSI版本的C++程序仍然可以使用标准C的main主函数入口参数argc和argv或者WinMain函数的lpCmdLine参数。但是,这些参数都是LPSTR类型而不是LPTSTR类型,所以不能用于Unicode版本的程序。Unicode版本的程序可以使用GetCommandLine获得命令行字符串,以及使用CommandLineToArgvW来获得argc和argv风格的数据。MFC程序当然也是C++程序,所以上面的方法仍然有效。一般情况下,应用程序可以访问CWinApp::m_lpCmdLine来处理参数。为了简化这个处理,MFC也提供了命令行处理过程的封装类CCommandLineInfo,支持了标准的命令行开关的分析。更高级的命令行参数的处理可以参考MSJ 1999年10月号,Paul DiLascia在C++Q&A专栏中描述的CCommandLineInfoEx类(http://www.microsoft.com/msj/1099/c/c1099.aspx)。它通过重载CCommandLineInfo ::ParseParam,之后保存分析的结果来提供自定义命令行开关分析方式的方法。
      

  2.   

    http://www.codeproject.com/cpp/cmdlineparser.asp
    可以用这个类来解析命令行
    参数从CWinApp::m_lpCmdLine即可以获得
      

  3.   

    if (AfxGetApp()->m_lpCmdLine[0] != '\0')
    {
    TCHAR strHandle[128];
    TCHAR strServer[128];
    int nChannel; istrstream(AfxGetApp()->m_lpCmdLine) >> strHandle >> strServer >> nChannel;
    }