QApplication的构造函数使用(int argc,char ** argv)来处理任何特定于Qt的命令行参数。
如果我的应用是unicode怎么办?我有一个wchar_t ** argv?
创建所有命令行args的char *副本以传递给本身是unicode的库似乎有点愚蠢。
答案 0 :(得分:8)
是的,会的。如果不是this note:
警告:在Unix上,此列表已构建 来自argc和argv参数 传递给了构造函数 主功能。字符串数据 argv使用解释 :: QString的fromLocal8Bit();因此它是 例如,不可能通过 关于a的日文命令行参数 在Latin1语言环境中运行的系统。 大多数现代Unix系统都没有 这种限制,因为它们 基于Unicode。
在基于NT的Windows上,这个限制 也不适用。在Windows上, arguments()不是从 argv / argc的内容,作为内容 不支持Unicode。相反, arguments()是从。构造的 GetCommandLine()的返回值。作为一个 结果,由...给出的字符串 arguments()。at(0)可能不是 Windows上的程序名称,具体取决于 应用程序是如何启动的。
不可否认,我没有这个词。
答案 1 :(得分:0)
好吧,main
将始终获得char** argv
,这就是QApplication
所期望的。如果要使用命令参数执行其他操作,还可以将它们(使用locale / encoding?)转换为宽字符串。