1
我对C++编程和Qt比较陌生,所以这个问题可能是我对代码依赖的理解。我试图在我的源代码中使用Xinput.h文件,这是Qt创建者的DirectX SDK的一部分。 我有我的解决方案的工作源代码,编译并在Visual Studio 2008中很好地执行,但是当我在Qt中使用它时,没有像缺少头文件那样。我曾尝试使用内置的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”在此范围内没有宣布导入XInput.dll,没有任何一个知道我怎么可能解决这一问题?
_in和_out错误来自Direct X SDK中包含的Xinput.h头文件。
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")
它的工作原理?
这里'_in'从哪里来?向我们展示处于问题核心的代码。 – Bart
我在主要评论的底部添加了一条额外的评论,感谢Bart。除了它的用途,恐怕我不知道更多。我还会指出,我检查了可能需要的其他库文件(甚至将它们全部添加进去),但没有运气。 – Nark