我有一些 C++ 代码,其中包含一个名为CreateDirectory().
以前的代码只使用 STL 和 Boost 的方法,但我最近不得不包含<windows.h>
这样我可以查找CSIDL_LOCAL_APPDATA
.
现在,这段代码:
filesystem.CreateDirectory(p->Pathname()); // Actually create it...
不再编译:
error C2039: 'CreateDirectoryA' : is not a member of ...
对应于这个宏winbase.h
:
#ifdef UNICODE
#define CreateDirectory CreateDirectoryW
#else
#define CreateDirectory CreateDirectoryA
#endif // !UNICODE
预处理器正在重新定义我的方法调用。有没有办法避免这种命名冲突?还是我必须重命名我的CreateDirectory()
方法?