DirectInput 8链接错误

时间:2013-05-07 18:03:44

标签: c++ visual-studio-2010 directx directinput gamepad

我正在尝试使用DirectInput来控制学校项目的小型3D应用程序上的相机移动。我在VS2010上使用C ++。

this link,我需要在项目属性上链接 dxguid.lib dinput8.lib 。所以,我添加了它们。

这导致VS2010无法读取 dxguid.lib 。因此,我必须从Microsoft's download page下载并安装DirectX SDK。这导致了S1023错误,用Microsoft's solution解决了。

我不断收到其他编译错误,有些搜索引导我this site。在这之后我现在只得到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>

但是第二个持续存在,令我沮丧......

1 个答案:

答案 0 :(得分:1)

确保您的包含目录包含此条目:

$(DXSDK_DIR)include

现在,对于Library目录,请设置以下内容:

$(DXSDK_DIR)lib\x86

然而,安装visual studio后跟directx sdk存在一个已知问题。如果以前的建议没有解决问题,请尝试卸载visual studio(确保删除运行时)。安装directx sdk后再次安装。然后使用我在这里写的设置,它可能会起作用(对我来说)。