重命名功能vs undef:与Windows API冲突

时间:2010-10-05 02:56:03

标签: c++ windows winapi cross-platform

这实际上已经发生过两次了。我正在编写一个跨平台的应用程序,我的一些函数名称与Windows API冲突。我所做的(例如使用LoadObject)是......

#undef GetObject

这是一个好的方法,还是应该重命名我的功能?

3 个答案:

答案 0 :(得分:1)

您可以将函数放在命名空间或类中(如果适用)。如果您在课堂上打电话,请记住this关键字。 this->aliasedFunction();

答案 1 :(得分:1)

如果您打算将代码与Windows API一起使用,我建议您重命名这些功能。是的,这是一个麻烦,但它(在我看来)比取消定义Windows API的部分更好,即使你不使用这些部分(其他人使用你的代码可能需要使用这些部分)。

答案 2 :(得分:0)

如果你正在使用C ++,你应该把你的函数放到类和命名空间中以避免这些问题(a.k.a方法)。