2015-02-21 2 views
1

Итак, я следил за учебником, где я создал прямое окно x. Выполнение кода учебника найдено here Я получаю серию ошибок с файлом DXGI.h. В основном серия:Ошибка компиляции с DXGI.h?

C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\Include\dxgi.h|286|error: '__in' has not been declared| 

и

C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\Include\dxgi.h|286|error: expected ',' or '...' before '&' token| 

Я побежал это на альтернативном компьютере, хотя произошла та же ошибка. Побывав у него на несколько часов, и понятия не имею. Я использую mingw gcc-компилятор.

+0

Какую визуальную версию вы используете при создании этого недомогания? Я считаю, что вам нужно как минимум CL10 (vs2010 или новее) для некоторых языковых добавлений, которые теперь используются в различных наборах файлов SDK. – WhozCraig

+0

Im с использованием кодовых блоков atm. – 23scurtu

+0

Это IDE. Что такое ** компилятор ** компилятор **, который вы используете, включая версии? (и вы можете найти [этот вопрос] (http://stackoverflow.com/questions/9000485/how-to-compile-a-directx-11-app-in-mingw) интересный. – WhozCraig

ответ

1

Файлы заголовков Microsoft используют многие из этих нестандартных классификаторов. Удаление их скорее не приведет к повреждению.

Попробуйте ввести этот код перед первым microsoft include.

#ifdef __MINGW32__ 
#define __in 
#define __in_opt 
#define __in_bcount(x) 
#define __in_z 
#define __in_z_opt 
#define __inout 
#define __out 
#define __out_opt 
#define __out_bcount(x) 
#define __out_bcount_opt(x) 
#endif 

Я не уверен на 100%, что это правильно, но это работает для меня. (Я использую этот метод в довольно большой программе DirectX.)

+0

Хм, это удалило мои предыдущие ошибки, но теперь я получаю тонну c: \ program files (x86) \ codeblocks \ mingw \ bin \ .. \ lib \ gcc \ mingw32 \ 4.7.1 \ include \ C++ \ mingw32 \ bits \ C++ locale.h | 75 | error: ожидаемое первичное выражение перед ',' токен – 23scurtu

+2

Это аннотации SAL для инструментов анализа статического кода, используемых как внутри, так и снаружи. может быть безопасно #defined ни к чему, но это фактически должно произойти автоматически с sal.h, который является частью SDK Windows, когда '' _PREFAST_'' не определен. –

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