宏和方法之间可能存在的冲突
Possible Conflict between a macro and a method
我认为方法和 windows 宏之间可能存在冲突。
我正在使用 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
当我清楚地输入 GetMessage
?
我发现的最佳解决方案是将您的方法重命名为不与 windows 宏冲突的名称。
您可能会在调用时的 .cpp 中发现 GetMessage 的宏是有效的。
我认为方法和 windows 宏之间可能存在冲突。 我正在使用 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
当我清楚地输入 GetMessage
?
我发现的最佳解决方案是将您的方法重命名为不与 windows 宏冲突的名称。
您可能会在调用时的 .cpp 中发现 GetMessage 的宏是有效的。