1

私は C++ プログラミングと Qt に比較的慣れていないため、この問題はおそらく共依存関係の理解不足です。ソース コード内で Xinput.h ファイルを使用しようとしています。これは、DirectX SDK with 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 エラーは、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
);

何が起こっているのかわからない人のためにデモを含めると思いました:

QT の .Pro ファイル:

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

そしてそれは動作しますか?

4

1 に答える 1

0

xinput.lib をプロジェクト フォルダーに配置し、次の行を .pro ファイルに追加しました。

win32: LIBS += -lXInput

そしてもちろん #include をコードに追加しました。

出来た。

于 2014-05-14T13:08:05.247 に答える