c – 使用WinApi时是否需要wchar_t支持unicode?
我知道通常你不需要wchar_t来支持通用代码的unicode,但是,Windows API似乎有一个ASCII或宽字符等效于所有采用字符串的方法.例如:
FindWindowA(nullptr,"File Explorer"); // ASCII version FindWindowW(nullptr,L"File Explorer"); // Wide Character version 我在Visual Studio 2017中使用Properties>中的以下选项进行编译一般: Character Set: Use Unicode Character Set 另一个可用选项是:使用多字节字符集. 我希望能够支持带有unicode字符的文件名,我不确定是否应该使用多字节字符集进行编译并使用所有宽字符方法,或者如果我应该使用unicode字符集进行编译并使用所有ASCII方法. 解决方法
>如果要使用Unicode,则必须使用宽“W”版本 因此,我建议您使用函数的“W”版本,假设您正在编写Windows NT及更高版本. 在Win32 API的上下文中,Microsoft的“Unicode”通常是指UTF-16.此外,Microsoft的MBCS本质上是DBCS,对于Windows 9x操作系统,缺少“W”版本的功能. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |