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