2

学校のプロジェクト用の小さな 3D アプリケーションで、DirectInput を使用してカメラの動きを制御しようとしています。VS2010 で C++ を使用しています。

このリンクに従って、プロジェクトのプロパティでdxguid.libとdinput8.libをリンクする必要がありました。だから、私はそれらを追加しました。

これにより、VS2010 が dxguid.lib を読み取れなくなりました。そのため、 Microsoft のダウンロード ページから DirectX SDK をダウンロードしてインストールする必要がありました。これにより S1023 エラーが発生し、Microsoft のソリューションで解決されました。

他のコンパイル エラーが発生し続け、いくつかの検索でこのサイトにたどり着きました。そして、それを行った後、未解決の外部が2つしか得られません:

error LNK2001: unresolved external symbol _IID_IDirectInput8W
error LNK2019: unresolved external symbol _DirectInput8Create@20

これは、最初のリンクから取得した関連コードで、マイナーな変更が加えられています。

bool GamePad::InitDirectInput(void)
{
    if(FAILED(DirectInput8Create(GetModuleHandle(NULL),
                             DIRECTINPUT_VERSION,
                             IID_IDirectInput8,
                             (void**)&m_pDIObject,
                             NULL)))
     {
     MessageBox(NULL,
            L"DirectInput8Create() failed!",
            L"InitDirectInput()",
            MB_OK);
    return false;
    }

    return true;
}

そして、私が行うすべての検索は、上記で提供されたものと同じか、または同様のソリューションに戻ります。やっていないことが見つからない。誰でもアイデアを提供できますか?問題は、Windows 8 を使用している可能性がありますか? 前もって感謝します。

アップデート

私は最初のものを使用して解決することができました

#include <InitGuid.h>

しかし、私の欲求不満に、2番目は持続します...

4

2 に答える 2

1

インクルード ディレクトリに次のエントリがあることを確認します。

$(DXSDK_DIR)include

次に、ライブラリ ディレクトリに次のように設定します。

$(DXSDK_DIR)lib\x86

ただし、Visual Studio をインストールした後に directx SDK をインストールすると、既知の問題があります。前の提案で問題が解決しなかった場合は、Visual Studio をアンインストールしてみてください (ランタイムも削除してください)。directx sdkをインストールした後、再度インストールしてください。次に、ここに書いた設定を使用すると、おそらく機能します(私にとってはそうです)。

于 2013-05-07T19:54:28.850 に答える
0

同じエラーが発生し、dinput8.lib と dxguid.lib をリンクして解決しました。興味深いことに、InitGuid.h を含める必要はありませんでした。

于 2017-11-29T04:45:35.957 に答える