Я пытаюсь использовать DirectInput для управления движением камеры в небольшом 3D-приложении для школьного проекта. Я использую C ++ на VS2010.
в эта ссылка, Мне нужно было ссылку dxguid.lib а также dinput8.lib в свойствах моего проекта. Итак, я добавил их.
Это привело к тому, что VS2010 не сможет читать dxguid.lib. Поэтому мне пришлось скачать и установить DirectX SDK с Страница загрузки Microsoft. Это привело к ошибке 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>
Но второе сохраняется, к моему разочарованию …
Убедитесь, что ваши каталоги включения имеют эту запись:
$(DXSDK_DIR)include
Теперь для библиотечных каталогов установите следующее:
$(DXSDK_DIR)lib\x86
Однако при установке visual studio существует известная проблема, за которой следует DirectX SDK. Если предыдущие предложения не решили проблему, попробуйте деинсталлировать Visual Studio (убедитесь, что вы удалили все время выполнения). И установите его снова после установки DirectX SDK. Тогда используйте настройки, которые я написал здесь, и это, вероятно, будет работать (это делает для меня).
У меня была та же ошибка, и я решил ее, связав с dinput8.lib и dxguid.lib. Интересно, что мне не нужно было включать InitGuid.h.