我有以下代码:
class MessageBox
{
public:
MessageBox();
};
但问题是MessageBox
在我的案例中是一个特定于操作系统的宏,它会导致问题。
我尝试#define MyMacro MessageBox
,然后#undef MessageBox
并重新定义它稍后,但只能在标题内部工作,因此当我尝试在源文件中创建类型为MessageBox
的对象时,它不起作用。
答案 0 :(得分:0)
如果您的班级名称与您实际无法更改的宏匹配,则您必须更改班级名称。
答案 1 :(得分:0)
一种可能的解决方案是创建一个标题,该标题将由项目的其余标题或源代码添加,而不是系统标题,并创建一个瘦的包装函数:
#include <system_header.h>
inline void myMessageBox( ... )
{
MessageBox( ... );
}
#undef MessageBox
很难说如何在没有该宏的更多细节的情况下传递参数。