2017-01-04 14 views
0

Visual Studio 2015でC++を使用してボタンをキーボードのプレスにマップできるプログラムを作成したいと思います。私はXinputに多大な問題を抱えていました。私はそれを定義したように見える意味がない1つの単純な問題で私。初期化されていないローカル変数 'state'が使用されました

私の問題は、未解決の外部シンボル_XinputGetState @ 8が_main関数で参照されているというエラーが1つ発生することです。一般unresolved external symbols

#include "stdafx.h" 
#include <windows.h> 
#include <iostream> 
#include <Xinput.h> 

using namespace std; 

int main() { 
    XINPUT_STATE state; 
    ZeroMemory(&state, sizeof(XINPUT_STATE)); 

    if (XInputGetState(0, &state) == ERROR_SUCCESS) 
    { 
    cout << "It worked!" << endl; 
    } 

    bool A_button_pressed = ((state.Gamepad.wButtons & XINPUT_GAMEPAD_A) != 0); 
    cout << A_button_pressed << endl; 
} 
+0

'XInputGetState' **は**' Xinput.lib'と 'Xinput9_1_0.libが必要です'。あなたはそれをあなたのプロジェクトにセッティングで追加しましたか?あなたの 'include'(XInput.h)の直下で' #pragma comment(lib、 "Xinput.lib") 'と' #pragma comment(lib、 "Xinput9_1_0.lib")を使ってみてください。 –

+0

@ViniyoShoutaありがとう出来た! –

+0

私は助けることができてうれしい!あなたが望むなら、下の答えを受け入れることができるので、この質問には答えがあります。似たようなことが起こった場合は、解決されていない外部記号を持つ特定の関数をGoogleに渡して、それらを知らない場合に必要なライブラリを確認することができます。 –

答えて

0

が機能するために必要なライブラリがリンクされていないことを意味します

は、ここに私のコードです。この場合

XInputGetState()XInputLib.libXinput9_1_0.libが必要です。

これは、プロジェクト設定でまたは経由でライブラリを追加することで解決することができます。

#pragma comment(lib,"XInput.lib")

#pragma comment(lib,"Xinput9_1_0.lib")

関連する問題