TCHAR 仍然相关吗?

新手上路,请多包涵

我是 Windows 编程的新手,在阅读 Petzold 的书后,我想知道:

is it still good practice to use the TCHAR type and the _T() function to declare strings or if I should just use the wchar_t and L"" 新代码中的字符串?

我将只针对 Windows 2000 及更高版本,我的代码从一开始就是 i18n

原文由 Fábio 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 985
2 个回答

如果我今天做一个新项目,我仍然会使用 TCHAR 语法。使用它和 WCHAR 语法之间没有太大的实际区别,我更喜欢在字符类型是什么方面明确的代码。由于大多数 API 函数和辅助对象采用/使用 TCHAR 类型(例如:CString),因此使用它才有意义。此外,如果您决定在某个时候在 ASCII 应用程序中使用代码,或者 Windows 曾经演变为 Unicode32 等,它还为您提供了灵活性。

如果您决定走 WCHAR 路线,我会明确说明。也就是说,使用 CStringW 代替 CString,并在转换为 TCHAR 时转换宏(例如:CW2CT)。

无论如何,这是我的看法。

原文由 Nick 发布,翻译遵循 CC BY-SA 2.5 许可协议

TCHAR 不再相关,因为现在我们有了 UNICODE。您应该改用 UTF-16 wchar_t* 字符串。

Windows API 将 wchar_t* 作为字符串,它是 UTF-16。

原文由 thebluetropics 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题