0

如何在 Visual Studio 2010 的 C++ 代码中使用FTGL的 C API?

FTGL 使用#ifdef __cplusplus检查从相同的头文件中导出 C 和 C++ API。

我试过这个:

#ifdef __cplusplus
  #undef __cplusplus
  #include <FTGL/ftgl.h>
  #define __cplusplus
#else
  #include <FTGL/ftgl.h>
#endif

但是VS2010没有它:

warning C4117: macro name '__cplusplus' is reserved, '#undef' ignored
warning C4117: macro name '__cplusplus' is reserved, '#define' ignored
4

2 回答 2

2

该宏是一个保留的宏,如果您正在编译为 C++ 代码(而不是其他方式定义) ,则__cplusplus应该由您的编译器自动定义。您不必#define手动进行,这就是您的编译器抛出错误的原因。

于 2013-08-05T15:04:21.023 回答
1

如何在 Visual Studio 2010 的 C++ 代码中使用 FTGL 的 C API?

你没有。

FTGL 的制造商显然不希望 C++ 用户使用 C API。所以他们不让他们。

__cplusplus宏是 C++ 语言的一部分;它不能是未定义的。或定义。或者重新定义。而且由于这就是 FTGL 的关键,所以没有办法让它合规。

避免这种情况的唯一方法是编辑 FTGL 本身。

于 2013-08-05T18:11:24.567 回答