Windows C/C++(VS2022)中是否存在CommandLineToArgvA函数?
关于CommandLineToArgvA()函数的存在性疑问及解决方案
问题背景
Windows API中存在CommandLineToArgvW()函数,后缀W代表宽字符(对应C/C++中的wchar_t类型)。但对比GetCommandLineW()与GetCommandLineA()的成对存在关系,本该对应的ANSI字符版本CommandLineToArgvA()似乎并不存在。
假设的char版本示例代码
int argc; char **argv = CommandLineToArgvA(GetCommandLineA(), &argc);
宽字符版本示例代码
int argc; wchar_t **wargv = CommandLineToArgvW(GetCommandLineW(), &argc);
疑问与确认
在网络各处搜索CommandLineToArgvA(),仅在Linux Wine环境中发现该函数的实现。经确认,Windows原生API中不存在CommandLineToArgvA()函数。
替代解决方案
若需要实现等效CommandLineToArgvA()的功能,可使用现有CommandLineToArgvW()函数解析命令行,再将得到的wchar_t类型结果转换为char类型即可。
内容的提问来源于stack exchange,提问作者Gabriel Frigo
相关产品推荐
相关产品推荐

