Как использовать FTGL C API из C ++?

Как я использую FTGLC API из кода C ++ в Visual Studio 2010?

FTGL использует #ifdef __cplusplus проверки экспортировать API C и C ++ из одних и тех же заголовочных файлов.

Я попробовал это:

#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

0

Решение

Как использовать C API FTGL из кода C ++ в Visual Studio 2010?

Вы не

Создатели FTGL явно не хотят, чтобы пользователи C ++ использовали C API. Таким образом, они не позволяют им.

__cplusplus макрос является частью языка C ++; Это не могу быть неопределенным. Или определяется. Или переопределено. И так как это то, от чего FTGL пользуется ключом, нет способа обмануть его.

Единственный способ избежать этого — редактировать сам FTGL.

1

Другие решения

Макрос __cplusplus является зарезервированным макросом и должен быть определяется автоматически вашим компилятором, если вы компилируете как код C ++ (и не определен иначе). Вы не должны должны #define это вручную, и именно поэтому ваш компилятор выдает ошибку.

2