2013-08-05 4 views
0

Как использовать API-интерфейс FTGL C-кода в Visual Studio 2010?Как использовать API FTGL C на C++?

FTGL uses #ifdef __cplusplus checks для экспорта 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 
+0

Почему вы пытаетесь это сделать? Поскольку заголовок FTGL будет обнаруживать сам '__cplusplus', почему вам нужно лгать ему, говоря, что вы смотрите на заголовок из C-кода? Пусть заголовок сделает это. –

+0

Потому что я хочу использовать * C * API в коде C++. – genpfault

ответ

1

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

У вас нет.

Создатели FTGL, по-видимому, не хотят, чтобы пользователи C++ использовали C API. Поэтому они не позволяют им.

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

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

2

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

 Смежные вопросы

  • Нет связанных вопросов^_^