Атрибут "selectany" действителен только при инициализации глобальных данных с внешней связью

Когда я включаю <d3d11.h> файл в Embarcadero RadStudio seattle 10 C++ IDE, компилятор выдает следующую ошибку:

[bcc64 Ошибка] d3d11.h(9622): атрибут "selectany" действителен только при инициализации глобальных данных с внешней связью.

Пожалуйста, помогите мне.

1 ответ

d3d11.h заголовок Microsoft для Direct3D

Аромат Microsoft selectany немного отличается от вкуса Эмбаркадеро selectany,

В частности, разновидность Microsoft поддерживает инициализацию по умолчанию глобальных экземпляров объектов, тогда как Embarcadero - нет. Глобальные переменные должны быть инициализированы данными. d3d11.h (будучи заголовком Microsoft) полагается на Microsoft selectany поведение. Переменная в вопросе (D3D11_VIDEO_DEFAULT) не инициализируется какими-либо данными, что нормально в компиляторе Microsoft, но не в компиляторе Embarcadero.

Вы должны будете изменить копию Embarcadero в d3d11.h добавить инициализацию:

//extern const DECLSPEC_SELECTANY CD3D11_VIDEO_DEFAULT D3D11_VIDEO_DEFAULT;
extern const DECLSPEC_SELECTANY CD3D11_VIDEO_DEFAULT D3D11_VIDEO_DEFAULT = {};
Другие вопросы по тегам