问题描述
我正在学习 win32 api。其中使用 TCHAR 数据类型来定义用于注册类的字符串。为什么在那里使用 TCHAR?
解决方法
TCHAR
是 Microsoft 在从基于代码页的字符过渡到 Unicode 时创建的拐杖。他们想要一种让人们轻松转换代码的方法,因此他们创建了一个编译器标志,用于确定您是要以旧方式还是以新方式做事。 TCHAR
是一个宏,对于旧方式扩展为 char
,对于新方式扩展为 wchar_t
。每个 Windows API 函数还获得一个宏,该宏为旧式函数附加 A
,或为新函数附加 W
。
如果您要开始一个新程序,您绝对应该使用 Unicode,而忘掉所有旧包袱。微软被迫继续使用它,因为它们是向后兼容性的王者,而且有 20 年的老程序永远不会更新为 Unicode。这并不意味着您需要关心。