none
mfc程序怎么接受命令行参数 RRS feed

  • 问题

  • 以前控制台程序,可以用 avgc,avgr[]来接受命令行参数

    mfc程序没有winmain(avgc,avgr[])

    不知道怎么 接受命令行参数

    2012年5月15日 13:20

答案

  • LPWSTR *szArglist;
       int nArgs;
       int i;
    
       szArglist = CommandLineToArgvW(GetCommandLineW(), &nArgs);
       if( NULL == szArglist )
       {
          wprintf(L"CommandLineToArgvW failed\n");
          return 0;
       }
       else for( i=0; i<nArgs; i++) printf("%d: %ws\n", i, szArglist[i]);
    
    // Free memory allocated for CommandLineToArgvW arguments.
    
       LocalFree(szArglist);


    Visual C++ enthusiast, like network programming and driver development. At present is being engaged in the WinCE/Windows Mobile platform embedded development.

    • 已标记为答案 Honny_yeyh 2012年5月17日 4:19
    • 取消答案标记 Honny_yeyh 2012年5月23日 13:59
    • 已标记为答案 Honny_yeyh 2012年5月23日 14:00
    2012年5月16日 13:44
    版主
    • 已建议为答案 Helen Zhao 2012年5月16日 2:38
    • 取消建议作为答案 Honny_yeyh 2012年5月23日 14:00
    • 已标记为答案 Honny_yeyh 2012年5月23日 14:00
    2012年5月15日 16:01
    版主

全部回复

    • 已建议为答案 Helen Zhao 2012年5月16日 2:38
    • 取消建议作为答案 Honny_yeyh 2012年5月23日 14:00
    • 已标记为答案 Honny_yeyh 2012年5月23日 14:00
    2012年5月15日 16:01
    版主
  •  CString abb;

     LPWSTR *szArglist = NULL; 
     int nArgs = 0; 
     szArglist = CommandLineToArgvW(GetCommandLineW(), &nArgs); 
     if( NULL != szArglist) 
     {  abb=*szArglist;
      AfxMessageBox(abb);

    这里abb只是第一个参数,即exe文件名,比方

    my.exe abccddd

    得到的结果是my.exe,而不是后面我想要的字符串

    2012年5月16日 12:07
  • LPWSTR *szArglist;
       int nArgs;
       int i;
    
       szArglist = CommandLineToArgvW(GetCommandLineW(), &nArgs);
       if( NULL == szArglist )
       {
          wprintf(L"CommandLineToArgvW failed\n");
          return 0;
       }
       else for( i=0; i<nArgs; i++) printf("%d: %ws\n", i, szArglist[i]);
    
    // Free memory allocated for CommandLineToArgvW arguments.
    
       LocalFree(szArglist);


    Visual C++ enthusiast, like network programming and driver development. At present is being engaged in the WinCE/Windows Mobile platform embedded development.

    • 已标记为答案 Honny_yeyh 2012年5月17日 4:19
    • 取消答案标记 Honny_yeyh 2012年5月23日 13:59
    • 已标记为答案 Honny_yeyh 2012年5月23日 14:00
    2012年5月16日 13:44
    版主