none
lpCmdLine命令行参数的问题 RRS feed

  • 问题

  • 我有两个函数 ma1(); ma2(); 可以在命令行添加参数,当参数为ma1的时候执行ma1();函数,当参数为ma2的时候执行ma2(); 请问MFC或者窗口应用程序可以实现吗?我想应该可以,只是一时找不到实例
    2011年6月3日 11:06

全部回复

  • GetCommandLine();得到字符串以后需要自己解析该字符串
    Visual C++ enthusiast, like network programming and driver development. At present is being engaged in the WinCE/Windows Mobile platform embedded development.
    2011年6月3日 11:24
    版主
  •  int CommandLineCount = 0;
     LPWSTR* m_lpCommandLine = CommandLineToArgvW(GetCommandLineW(), &CommandLineCount);

     char* m_strCommandLine=" ";
     m_strCommandLine=(char*)malloc(sizeof(m_strCommandLine));
     for(int i = CommandLineCount - 1; i >= 0; i --)  
     {
     #if defined(UNICODE)
      WideCharToMultiByte(CP_ACP, 0, m_lpCommandLine[i], -1, m_strCommandLine, wcslen(m_lpCommandLine[i]), 0, 0);
      m_strCommandLine[wcslen(m_lpCommandLine[i])] = 0;
     #else
      lstrcpy((PTSTR)m_strCommandLine, (PTSTR)m_lpCommandLine[i]);
     #endif

      if(m_strCommandLine == _T("ABC"))
       MessageBox(NULL,"DYABC","DYABC",0);
      else
        MessageBox(NULL,"MEIYDYABC","MEIYDYABC",0);


    这个是EXE代码
    2011年6月4日 0:31
  •  TCHAR   szCmdLine[512];
     wsprintf(szCmdLine,   __TEXT( "cmdshtoqh.exe ABC"));
     STARTUPINFO   si;
     ZeroMemory(&si,   sizeof(si));
     si.cb   =   sizeof(si);
       PROCESS_INFORMATION   pi;

     
      if( !CreateProcess( NULL,szCmdLine,   // No module name (use command line).
       //TEXT("ABC"), // Command line. 向采集程序传入特定参数运行调用采集程序,这样可防止用户鼠标直接双击采集程序运行 2010/1/17
       NULL,             // Process handle not inheritable.
       NULL,             // Thread handle not inheritable.
       FALSE,            // Set handle inheritance to FALSE.
       0,                // No creation flags.
       NULL,             // Use parent's environment block.
       NULL,             // Use parent's starting directory.
       &si,              // Pointer to STARTUPINFO structure.
       &pi )             // Pointer to PROCESS_INFORMATION structure.
       )
      {
       MessageBox(NULL,"success","cg",0);

      }

       
      else
      {
        MessageBox(NULL,"sb","sb",0);

      }

    这是调用代码
    2011年6月4日 0:32