宏和方法之间可能存在的冲突
Possible Conflict between a macro and a method
我认为方法和窗口宏之间可能存在冲突。我正在使用cygwin gcc,这就是我的冲突的样子
File : MRepository.h
#pragma once
#ifdef GetMessage
#undef GetMessage
#endif //GetMessage
class MRepository
{
public:
std::wstring GetMessage(const std::wstring &key) const;
...
....
};
File : MRepository.cpp
bool MRepository::SomeMethod(boost::shared_ptr<foo> &nd)
{
std::wstring type = this->GetMessage(L"SomeData"); //Error Here : Method not recognized
....
....
return available;
}
这是我从该方法中得到的错误
error: 'class MRepository' has no member named 'GetMessageA'|
请注意,我调用了GetMessage
但它认为该方法被调用GetMessageA
任何关于为什么编译器认为我在明确输入GetMessageA
时GetMessage
引用的建议?
我发现的最佳解决方案是将您的方法重命名为与 Windows 宏不冲突的内容。
您可能会在调用点的.cpp中找到 GetMessage 的宏已生效。
相关文章:
- C++模板来检查友元函数的存在
- 既然存在危险,为什么项目要使用-I include开关
- C++LinkedList问题.数据类型之间存在冲突?没有匹配的构造函数
- c++11 lambda 真的支持闭包吗?函数变量中存在语义冲突
- 使用Boost的班级名称冲突是否存在问题
- OpenCV和Tesseract之间是否存在任何冲突
- 加载具有相同符号的两个共享库时是否存在符号冲突
- C++可能存在写入位置的构造函数错误冲突
- 声明c++中存在冲突的说明符
- Visual Studio(C++)中存在冲突错误
- 指针引用的值不再存在时输出冲突
- 宏和方法之间可能存在的冲突
- 我的代码中存在死锁/访问冲突,即使我已经相互排除了它
- VS2008 中存在访问冲突,但在 VS2002 中没有
- 仅在调试时std::string析构函数中存在访问冲突
- 复制构造函数和转发构造函数之间存在冲突
- 运算符重载实现:0xC0000005:读取位置存在访问冲突
- 双链接列表中存在访问冲突
- oraclepro-c-数据类型在pro*c和c++中存在冲突
- 库之间存在冲突?给出重新定义错误.- TinyXML2和Cocos2d-x