2012-01-24 2 views
1

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

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 + = ядро ​​

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") 

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

+0

Откуда этот '_in'? Покажите нам код, лежащий в основе проблемы. – Bart

+0

Я добавил дополнительный комментарий в нижней части основного комментария, спасибо Барту. Боюсь, я не знаю гораздо больше об этом, кроме его использования. Я также хотел бы отметить, что я проверил дополнительные файлы библиотеки, которые могут понадобиться (даже добавили их все), но не повезло. – Nark

ответ

0

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

win32: LIBS += -lXInput 

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

Это сработало.

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