场景:

1. 有时候须要构造命令行字符串传递給函数调用,比方CreateProcess,假设參数是动态的,那么就得使用类似std::vector<string>加入单个參数,之后拼接为一个string.

wx有给这类处理类。就是wxCmdLineParser ,它既能拼接为字符串。又能够把字符串分解为一个參数数组。

console.cpp

#include "wx/wxprec.h"

#ifndef WX_PRECOMP
#include "wx/wx.h"
#endif #include "wx/cmdline.h"
#include "wx/app.h"
#include <assert.h>
#include <iostream>
#include <stdio.h> using namespace std; void TestParseCmdLine()
{
cout << "TestParseCmdLine" << endl;
wxString cmd("gcc -c -o test.exe test.cpp");
//1.解析字符串
wxCmdLineParser parser;
//parser.SetCmdLine(0,(char**)NULL);
wxArrayString arr = parser.ConvertStringToArgs(cmd);
for(int i = 0; i < arr.size(); ++i)
{
cout << arr[i] << endl;
}
//2.生成字符串 parser.AddParam(wxT("gcc"));
parser.AddParam(wxT("-c"));
parser.AddParam(wxT("-o"));
parser.AddParam(wxT("test.exe"));
parser.AddParam(wxT("test.cpp"));
//parser.Reset();
//parser.Parse();
cout << "parser.GetParamCount(): " << parser.GetParamCount() << endl;
for(int i = 0; i < parser.GetParamCount(); ++i)
{
cout << parser.GetParam(i) << endl;
}
cout << "argv: " << wxTheApp->GetAppName() << endl;
wxString str = parser.GetUsageString();
wxString appName = wxTheApp->GetAppName();
cout << "parser: " << str.Mid(str.Find(wxTheApp->GetAppName())+appName.Length()+1) << endl;
} int main(int argc,char* argv[])
{
wxInitialize();
wxEntryStart(argc,argv);
wxInitAllImageHandlers(); TestParseCmdLine(); wxEntryCleanup();
wxUninitialize();
return 0;
}

输出:

TestParseCmdLine
gcc
-c
-o
test.exe
test.cpp
parser.GetParamCount(): 0
argv: test_wxCmdLineParser
parser: gcc -c -o test.exe test.cpp

最新文章

  1. NavigationController
  2. rails查询mongodb通用查询
  3. border-width和border其它属性配合实现的小三角形标签效果
  4. 头部加mead(便于seo优化)
  5. Entity Framework 在Vs2012下Update Model From DataBase 失败的问题
  6. 15个实用的CSS在线实例教程
  7. BFS+模拟 ZOJ 3865 Superbot
  8. c++重载与覆写
  9. 《C++反汇编与逆向分析技术揭秘》——观察各种表达式的求值过程
  10. web攻击和防御措施
  11. Alpha 冲刺 (9/10)
  12. 运行 vue 报node错
  13. 把A表的多个字段更新到B表
  14. BZOJ.4695.最假女选手(线段树 Segment tree Beats!)
  15. Python 字典(联合内存、联合数组)
  16. laravel时间判断
  17. PHP 正则表达式 及常用汇总
  18. 学习python的一些脚本
  19. vdbench测试过程中遇到的小问题
  20. Codelf 搜索开源代码帮程序员命名

热门文章

  1. centOS出现 -bash: vim: command not found
  2. sql中group by
  3. vue 错误处理
  4. Nginx配置ThinkPHP和Laravel虚拟主机
  5. Numpy的基本操作和相关概念(一)
  6. LeetCode(237)Delete Node in a Linked List
  7. 激活windows10(已更新工具)
  8. Android Ubuntu 12.04 源码环境搭建
  9. luogu4135 作诗
  10. xtu summer individual 1 E - Palindromic Numbers