Mic*_*ith 3 c++ unicode winapi visual-c++
我知道通常你不需要wchar_t支持unicode用于通用代码,但是,Windows API似乎有一个ASCII或宽字符等效于所有采用字符串的方法.例如:
FindWindowA(nullptr, "File Explorer"); // ASCII version
FindWindowW(nullptr, L"File Explorer"); // Wide Character version
Run Code Online (Sandbox Code Playgroud)
我Visual Studio 2017使用以下选项编译Properties > General:
Character Set: Use Unicode Character Set
Run Code Online (Sandbox Code Playgroud)
另一个可用选项是:Use Multi-Byte Character Set.
我希望能够支持带有unicode字符的文件名,我不确定是否应该使用multi-byte字符集进行编译并使用所有宽字符方法,或者我是否应该使用unicode字符集进行编译并使用所有ASCII方法.
我不确定是否应该使用多字节字符集进行编译并使用所有宽字符方法,或者我是否应该使用unicode字符集进行编译并使用所有ASCII方法.
wchar_t.char.MultiByteToWideChar(CP_ACP),调用它们的"W"对应物,最后将结果转换回多字节使用WideCharToMultiByte(CP_ACP).因此,我建议您使用函数的"W"版本,假设您正在编写Windows NT及更高版本.
在Win32 API的上下文中,Microsoft的"Unicode"通常是指UTF-16.此外,Microsoft的MBCS本质上是DBCS,对于Windows 9x操作系统,缺少"W"版本的功能.
| 归档时间: |
|
| 查看次数: |
163 次 |
| 最近记录: |