Как настроить Qt - DirectX - Xinput.h - PullRequest
1 голос
/ 25 января 2012

Я относительно новичок в программировании на C ++ и Qt, так что, вероятно, эта проблема - мое неправильное понимание зависимости кода. Я пытаюсь использовать файл Xinput.h в своем исходном коде, который является частью DirectX SDK с создателем Qt. У меня есть рабочий исходный код для моего решения, который прекрасно компилируется и выполняется в Visual Studio 2008, однако, когда я использую его в Qt, отсутствует такой файл, как заголовочный файл. Я попытался импортировать XInput.dll с помощью встроенного сумматора библиотеки

win32:CONFIG(release, debug|release): LIBS += -L$$PWD/../../../../../Program Files (x86)/Microsoft DirectX SDK (June 2010)/Lib/x64/ -lXInput
else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/../../../../../Program Files (x86)/Microsoft DirectX SDK (June 2010)/Lib/x64/ -lXInputd
else:symbian: LIBS += -lXInput
else:unix: LIBS += -L$$PWD/../../../../../Program Files (x86)/Microsoft DirectX SDK (June 2010)/Lib/x64/ -lXInput

INCLUDEPATH += $$PWD/../../../../../Program Files (x86)/Microsoft DirectX SDK (June 2010)/Lib/x64
DEPENDPATH += $$PWD/../../../../../Program Files (x86)/Microsoft DirectX SDK (June 2010)/Lib/x64

Однако это не скомпилируется, так как '_in' не было объявлено в этой области, кто-нибудь знает, как я мог бы это исправить?

Ошибки _in и _out происходят из файла заголовка Xinput.h, включенного в Direct X SDK.

DWORD WINAPI XInputGetState
(
    __in  DWORD         dwUserIndex,  // Index of the gamer associated with the device
    __out XINPUT_STATE* pState        // Receives the current state
);

Я думал, что включу демонстрацию для тех, кто не знает, что происходит:

Файл .Pro из QT:

QT + = core

QT       -= gui

TARGET = testxbox
CONFIG   += console
CONFIG   -= app_bundle

TEMPLATE = app


SOURCES += main.cpp

   INCLUDEPATH += "...path to include file.../Include"

win32: LIBS += -L$$PWD/../../../Program Files (x86)/Microsoft SDKs/Windows/v7.0A/Lib/ -lXinput

INCLUDEPATH += $$PWD/../../../Program Files (x86)/Microsoft SDKs/Windows/v7.0A/Lib
DEPENDPATH += $$PWD/../../../Program Files (x86)/Microsoft SDKs/Windows/v7.0A/Lib

Тогда я просто пытаюсь включить Xinput.h в мои исходные файлы, и я получаю множество ужасных сообщений. Windows VS 2008 просто давайте мне сделать

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

и это работает?

1 Ответ

0 голосов
/ 14 мая 2014

Я поместил xinput.lib в папку своего проекта и добавил эту строку в файл .pro:

win32: LIBS += -lXInput

И, конечно, добавил #include в код.

Этоработал.

...