2012-01-24 5 views
1

私は比較的C++プログラミングとQtの新機能ですので、この問題はおそらくコード依存性の理解には間違いです。私はソースコード内でXinput.hファイルを使用しようとしています。これはQt作成者がいるDirectX SDKの一部です。 Visual Studio 2008でコンパイルして実行するソリューションのソースコードを作業していますが、ヘッダーファイルが見つからないなど、Qtで使用するようになっても問題ありません。私は、いずれかが、私はこの問題を解決する方法を知っている、しかし、これはこのスコープで宣言されていなかった「_IN」私を与えてコンパイルに失敗し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 

を作り付けlibary加算器を使用して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 
); 

私は何が起こっているのかがわからない人のためのデモを含めるだろうと思った:

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

それは機能しますか?

+0

この '_in'はどこから来ますか?問題の中心にあるコードを見せてください。 – Bart

+0

私は、メインのコメントの一番下にBart氏に感謝の言葉を追加しました。私は、その使用以外のことについてはそれほど詳しく知りません。私はまた、必要なかもしれない追加のライブラリファイルをチェックしていたことを指摘したいと思います。 – Nark

答えて

0

私は私のプロジェクトフォルダにxinput.libを入れて、.PROファイルに次の行を追加しました:

win32: LIBS += -lXInput 

そしてもちろんのは、コード内の#includeを追加しました。

それは働いた。