QApplication在unicode中

Mar*_*ett 4 c++ unicode qt

QApplication的构造函数采用(int argc,char**argv)来处理任何Qt特定的命令行参数.

如果我的应用程序是unicode怎么办?我有一个wchar_t**argv?

创建所有命令行args的char*副本以传递给本身为unicode的库似乎有点愚蠢.

Han*_*ant 8

是的,它会.如果不是这个说明:

警告:在Unix上,此列表是根据传递给main()函数中构造函数的argc和argv参数构建的.argv中的字符串数据使用QString :: fromLocal8Bit()进行解释; 因此,不可能在以Latin1语言环境运行的系统上传递日语命令行参数.大多数现代Unix系统都没有这个限制,因为它们是基于Unicode的.

在基于NT的Windows上,此限制也不适用.在Windows上,arguments()不是从argv/argc的内容构建的,因为内容不支持Unicode.相反,arguments()是从GetCommandLine()的返回值构造的.因此,arguments().at(0)给出的字符串可能不是Windows上的程序名,具体取决于应用程序的启动方式.

诚然,我不明白这个词要么.