[wxWidgets]_[0基础]_[不常见但有用的类wxCmdLineParser]
基础 常见 有用
2023-09-11 14:15:00 时间
场景:
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
相关文章
- 面试的信心来源于过硬的基础
- 2-4python语法基础-基础-控制语句
- Spring Cloud Alibaba | Sentinel: 服务限流基础篇
- 编程基础之Jekins
- matplotlib常见绘图基础代码小结:折线图、散点图、条形图、直方图、饼图
- 深度学习基础(常见的网络2)
- [c#基础]关于const和readonly常见的笔试题剖析
- 数据结构基础概念录
- C/C++基础讲解(八十)之常见试题解答篇(矩阵逆置/删除指定的字符/括号匹配)
- C/C++基础讲解(七十)之常见试题解答篇(水果拼盘/小孩吃梨/删除字符串中的特定字符)
- [namespace] PHP命名空间的使用基础
- Atitit nlp用到的技术与功能自然语言处理 v3 t99.docx Atitit nlp用到的技术与常见类库 目录 1. 常用的技术1 1.1. 语言处理基础技术 分词 相似度等1 1.2
- mysql常用基础操作语法(二)~~对表的增删改操作【命令行模式】
- JavaSE基础篇 | 常见运算符的使用
- 基于JAVA实现的WEB端UI自动化 - WebDriver基础篇 -常见的页面元素操作
- HTML基础篇
- SQL语言基础
- python基础===trheading 模块
- ZZNUOJ_Java语言从非零基础到入门系列讲解
- Terraform 基础 定义阿里云资源 VPC、安全组
- 【OSTEP】动态内存开辟 | 内存API常见错误 | UNIX: brk/sbrk 系统调用 | mmap创建匿名映射区域 | mmap创建以文件为基础的映射区域