FreeType“通用”与c++/cx关键字冲突

11

我在将C++和C++/CX结合使用时遇到了问题。我需要使用FreeType库,但它们对某些变量使用了“通用”名称。同时,由于WinRT应用程序,我还需要启用VC++扩展,这导致名称冲突("generic"是C++/CX中的关键字)。

1>freetype2\include\freetype\freetype.h(1391): error C2059: syntax error : 'generic'

我只是在项目属性中添加了freetype的引用和额外的包含目录。

有没有什么方法可以解决这个问题? 非常感谢您的帮助 :) 托马斯


你如何解决WinRT应用程序中的/ZW选项冲突?只需将*.c文件重命名为*.cpp即可吗? - CReaTuS
嗨 - 我在遇到完全相同的问题时发现了这个问题。你也在尝试使用/clr:pure编译Freetype吗?如果是,你成功了吗? - bright
1个回答

17

使用预处理器暂时重命名此关键字:

#define generic GenericFromFreeTypeLibrary
#include .... files from FreeTypeLibrary
#undef generic

这个解决方案不是很好,但应该能够起作用。


你能举个具体的例子展示这应该是什么样子吗?你说的GenericFromFreeTypeLibrary是什么意思? - BRabbit27
GenericFromFreeTypeLibrary 只是随意创建的名称 - 仅为了导致 FreeTypeLibrary 使用此名称而不是关键字 generic,因为在 WinRT 中,generic 是关键字。您可以使用 ABRACADABRA 或任何您想要的名称 - 假设它不会引起任何新的冲突... - PiotrNycz
好的,我以为我必须用其他东西替换那个东西。 - BRabbit27

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接