我正在选择“使用Unicode字符集”的C++项目(VC++)。enum与UNICODE冲突定义
这台UNICODE和_UNICODE。同时,包含的第三方.h文件恰好在枚举中包含“UNICODE”,并且这两者是冲突的。
enum Encoding {
...
UNICODE = 17, // Teragram Unicode
...
}
的IDE抱怨“错误C2059:语法错误:‘常量’,因为我想在枚举使用UNICODE被变成了1号。请问有什么办法可以逃脱枚举的名字吗?我该如何解决这个问题?枚举之前
#undef UNICODE
:
由于'_UNICODE'仍然会#define'd,你可以'#定义UNICODE'枚举之后,如果'_UNICODE'是的#define倒是。 –
我假设第三方库中的代码不能被修改。无论如何,你的建议应该肯定有帮助。 –
你可以随意修改一个库的.h文件,因为你的代码必须编译它们。 –