c++ - C++ 混淆宏
问题描述
我正在查看一些 windows directx 应用程序代码,看到他们使用宏 _T(x) 来设置他们的窗口名称,在查看宏定义时我看到了这个
#define _T(x) __T(x)
然后我跟着看了看__T
#define __T(x) x
为什么会存在这种情况?
解决方案
_T(x)
通常是与平台无关的文本字符类型的宏。在某些平台上,它可能会解析为x
. 在其他使用宽字符的情况下,它可能会解析为L ## x
,例如,_T("abc")
可能会解析为"abc"
或L"abc"
。
推荐阅读
- python - 为什么 Map 有效而 ParDo 无效?
- reactjs - 使用 npm 编译 .jsx 文件
- c++ - 从全局对象构造函数停止看门狗定时器
- vb.net - 远程客户端引用对象时什么都不是
- templates - 如何在构造函数中应用算术类型提升
- regex - 如何在powershell中选择已经匹配的行之后的第一个匹配行?
- python-3.x - time.perf_counter() 在 Windows 上的 Python 进程中是否应该保持一致?
- python - 如何显示文本 5 秒然后消失并显示按钮?
- ios - Swift switch unwrap 类型匹配模式
- c++ - 无法使用 `enable_if` 和 `is_base_of` 将模板函数 `operator+` 的重载限制为我的类层次结构