C++ 标准风格 Stringlist 参数解析器 支持多种参数解析(更新中)

文章介绍了在Win32API编程中,如何使用自定义的StringList类优雅地解析WinMain函数接收到的非标准参数lpCmdLine。StringList基于std::stringstream进行参数分割,提供类似string::find的功能。示例代码展示了如何处理配置文件、帮助文档请求、调试模式以及不同类型的参数。
摘要由CSDN通过智能技术生成

意义何在

这个东西有什么用呢 就是你在进行Win32API编程的时候,你写的 WinMain (wWinMain)函数它传入的可不是 argc 和 argv ,是一整个的 LPSTR lpCmdLine (或者LPWSTR)。

那么,怎么优雅地解析这个 lpCmdLine 呢?(支持 Unicode)

下面给出一种解决方案。

注:该库仍不完善,示例也没有覆盖到所有的可能情况,它甚至连启用 CaseInsensitive 都不支持。但是这是一个 “活跃” 的项目,所以会尽快完善。

主体介绍

主要思路:定义一个优雅的 StringList 类,通过 std::stringstream 进行参数的分割,然后就可以优雅的用 string::find 一样的代码进行参数解析了 :P

更新

V1 (2023-05-04) 仅 StringList 库部分代码 实现基础解析

V2 自己在改Bug和兼容性 没有上传

ParamParser 参数解析器

代码部分

stringlist.h

#pragma once

#include <string>
#include <sstream>
#include <vector>

namespace std {

    template <typename _tcType>
    class _tagStringList {
        using _tagString = std::basic_string<_tcType, std::char_traits<_tcType>, std::allocator<_tcType>>;
        using _tagStringStream = std::basic_stringstream<_tcType, std::char_traits<_tcType>, std::allocator<_tcType
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值