如何禁用win32'interface'宏?

时间:2012-08-07 21:21:49

标签: c++ windows winapi

我在这里绝对疯了。我正在Windows上进行一些C ++开发,我有一个名为'interface'的命名空间:

namespace gd {
namespace interface {

}} // end namespace

但是,无论是否包含“Windows.h”或“Wtypes.h”(包含名为“interface”的宏),都会包含一个名为“objbase.h”的文件。这个宏不允许我使用命名空间名称。 Win32 API中是否有一项功能可以禁用接口宏的定义?如果没有,有人可以想出一个聪明的解决方法来禁用它,而不需要在我的代码库中进行太多的大规模更改吗?

2 个答案:

答案 0 :(得分:9)

如果您真的想这样做,可以#undef interface宏。

我建议不要命名你的命名空间interface,因为interface尽可能接近保留字而不是实际上是保留字。使用该命名空间会引起很大的困惑。

答案 1 :(得分:0)

您似乎也可以定义WIN32_LEAN_AND_MEAN,以避免在objbase.h包含时windows.h被拉入。