aka*_*nuk 1 c++ c-preprocessor
刚抓到一个愚蠢的小虫.我有一个带有CreateFile()功能的zip处理库.Winbase.h,包括在我的标题深处的某个地方,重新定义它CreateFileW,链接器疯了.
当然,我会winbase在这个特殊情况下排除.它不应该在第一位的范围内.但理论问题仍然很有趣,
有没有办法在本地压制一些定义?
您可以通过在名称周围加上括号来绕过宏:
(CreateFile)(arguments);
Run Code Online (Sandbox Code Playgroud)
这是有效的,因为宏CreateFile是一个类似函数的宏(即它在括号中需要一个参数列表); 名称后面的右括号与使用类似函数的宏的语法不匹配,因此预处理器不会展开它.
当然,"正确"的解决方案是正确命名功能,即create_file.<g>
| 归档时间: |
|
| 查看次数: |
362 次 |
| 最近记录: |