Переход от Visual Studio Express к NetBeans. #include & lt; dwmapi.h & gt; не работает

Я перехожу с Visual Studio Express на NetBeans с MinGW. Однако я не могу решить один из них:

#include <dwmapi.h>
#pragma comment(lib, "dwmapi.lib")

Однако следующие включения, кажется, работают:

#include <d3d9.h>
#include <d3dx9.h>
#pragma comment(lib, "d3d9.lib")
#pragma comment(lib, "d3dx9.lib")

Мне пришлось добавить DirectX SDK к компоновщику и включить параметры компилятора (-I и -l). Однако я не знаю, как это сделать с dwmapi.h, потому что я не загружал никакой другой SDK.

Кто-нибудь знает, как решить эту проблему? Заранее большое спасибо.

0

Решение

  • MinGW включает в себя множество модифицированных заголовков Win API. Если вы используете MinGW w64, регистрироваться

    %MINGW_HOME%/x86_64-w64-mingw32/include/
    
  • В противном случае вы можете использовать заголовки по умолчанию из Windows SDK. Но вряд ли они будут компилироваться. Но вы можете попробовать скопировать его, отредактировать (удалить все макросы украшений Microsoft) и заставить его работать.
    Вот путь включения для Win 8.1 SDK:

    C:\Program Files (x86)\Windows Kits\8.1\Include\um
    

    Зарядите свою систему поиска файлов, чтобы найти свою.

  • Обратите внимание, что MinGW GCC не поддерживает линкерные прагмы:

    #pragma comment(lib, ...
    

    Вам нужно будет связать все библиотеки в опциях командной строки g++ (в Makefile, scrpt, что угодно).

1

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

Других решений пока нет …