MFC中获取命令行参数的几种方法

在MFC程序中,可以用以下几种方法来获取命令行参数。
  为方便说明,我们假设执行了命令:C:\test\app.exe -1 -2


方法一

  ::GetCommandLine();

  将获取到 "C:\test\app.exe" -1 -2


方法二
  for (int i=0;i<__argc;i++)
  {
  __argv[i];
  将依次得到C:\test\app.exe -1 -2
  }


 方法三
  AfxGetApp()->m_lpCmdLine;
  将获取到 -1 -2


 其他方法
  如果希望支持MFC应用程序的标准命令行,还可以使用MFC中的CCommandLineInfo类。


原文:http://jingyan.baidu.com/article/3065b3b634f5febecff8a419.html


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MFC(Microsoft Foundation Classes)是一组C++的类库,开发人员可以使用它来创建Windows应用程序。获取命令行结果是MFC的一个常见任务,下面介绍一种实现方式: 使用MFC的CString类和MFC的CStdioFile类,可以方便地获取命令行输出结果。具体步骤如下: 1. 使用CreateProcess函数执行命令行。 2. 创建一个CStdioFile对象,并调用CStdioFile的ReadString函数从管道读取输出流。 3. 循环读取输出流,直到全部读取结束,使用CString类将结果保存。 4. 关闭CStdioFile对象和管道句柄。 下面是代码示例: ```c++ CStdioFile file; CString strResult = _T(""); bool bRet = false; SECURITY_ATTRIBUTES saAttr; saAttr.nLength = sizeof(SECURITY_ATTRIBUTES); saAttr.bInheritHandle = TRUE; saAttr.lpSecurityDescriptor = NULL; HANDLE hRead; HANDLE hWrite; if (CreatePipe(&hRead, &hWrite, &saAttr, 0)) { STARTUPINFO si; memset(&si, 0, sizeof(si)); si.cb = sizeof(si); si.dwFlags = STARTF_USESHOWWINDOW | STARTF_USESTDHANDLES; si.wShowWindow = SW_HIDE; si.hStdInput = nullptr; si.hStdError = hWrite; si.hStdOutput = hWrite; PROCESS_INFORMATION pi; bRet = CreateProcess(nullptr, _T("dir"), nullptr, nullptr, TRUE, 0, nullptr, nullptr, &si, &pi); CloseHandle(hWrite); if (bRet) { file.Attach(hRead); CString strLine; while (file.ReadString(strLine)) { strResult += strLine; } file.Close(); } CloseHandle(hRead); CloseHandle(pi.hProcess); CloseHandle(pi.hThread); } ``` 以上就是一个获取命令行输出结果的MFC示例,读者可以根据自己实际的需求进行修改和优化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值