我正在尝试使用DirectInput来控制一个学校项目的小型3D应用程序上的相机运动。我在VS2010上使用VS2010。
按照此链接,我需要在我的项目属性上链接dxguid.lib和dinput8.lib。所以我加了它们。
这导致VS2010无法阅读dxguid.lib。因此,我不得不从DirectX下载并安装微软的下载页面 SDK。这导致了S1023错误,用微软的解决方案解决了。
我不断地获得其他编译错误,一些搜索引导我到本站。在做完之后,我现在只得到了两个未解决的外部因素:
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>但第二种情况持续存在,让我感到沮丧.
发布于 2013-05-07 19:54:28
确保您的包含目录有以下条目:
$(DXSDK_DIR)include现在,对于库目录,设置如下:
$(DXSDK_DIR)lib\x86但是,安装visual和directx有一个已知的问题。如果前面的建议没有解决问题,请尝试卸载visual studio (确保您也删除了运行时的运行时)。并在安装了directx之后再次安装它。然后使用我在这里写的设置,它可能会起作用(对我来说是这样)。
发布于 2017-11-29 04:45:35
我也犯了同样的错误,并通过使用dinput8.lib和dxguid.lib链接来解决它。有趣的是,我不必包括InitGuid.h。
https://stackoverflow.com/questions/16425664
复制相似问题