【发布时间】:2024-01-20 15:29:01
【问题描述】:
我是 C++ 新手,面临下面提到的一个简单问题。 在 Visual C++ 2008 中,我试图 #define 类似
#define fromThis* toThisPtr
#define fromThis toThisObj
我正在移植一些用linux编写的代码,需要按照winapi进行移植。我得到的错误 像这样的。
error C2008: '*' : unexpected in macro definition
warning C4005: 'fromThis' : macro redefinition
see previous definition of 'fromThis'
我需要在预处理期间重新定义 fromThis* 和 fromThis。 #define 宏中的特殊字符是否不允许? 我怎样才能把这段代码弄出来?
EDIT-1: 我正在寻找可能的解决方案。我正在尝试将 *fromThis 替换为 'toThisPtr'。一种建议的解决方案是使用 typedef。我喜欢下面的。
typedef toThisPtr fromThis*;
typedef toThisObj fromThis;
现在有了这个解决方案,我得到的错误是:
错误 C2143:语法错误:缺少 ';'前 '*' 错误 C2059:语法错误:';' 错误 C2040:“iovec”:“toThisObj”与“toThisPtr”的间接级别不同
typedef 可以解决这个问题。将fromThis*替换为toThisPtr的std方法是什么?
【问题讨论】:
标签: c++ windows visual-c++ macros porting