我正在尝试使用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>
但是第二个持续存在,令我沮丧......
答案 0 :(得分:1)
确保您的包含目录包含此条目:
$(DXSDK_DIR)include
现在,对于Library目录,请设置以下内容:
$(DXSDK_DIR)lib\x86
然而,安装visual studio后跟directx sdk存在一个已知问题。如果以前的建议没有解决问题,请尝试卸载visual studio(确保删除运行时)。安装directx sdk后再次安装。然后使用我在这里写的设置,它可能会起作用(对我来说)。