2013-05-07 4 views
2

Я пытаюсь использовать DirectInput для управления перемещением камеры на маленьком 3D-приложении для школьного проекта. Я использую C++ на VS2010.Ошибки связи DirectInput 8

Per this link, мне нужно, чтобы связать dxguid.lib и dinput8.lib на моих свойствах проекта. Итак, я добавил их.

Это привело к тому, что VS2010 не смог прочитать dxguid.lib. Поэтому мне пришлось загрузить и установить DirectX SDK с Microsoft's download page. Это привело к ошибке S1023, которая была решена с помощью Microsoft's solution.

Я продолжал получать другие ошибки компиляции, и некоторые поиски привели меня к this site. И после того, как делать, что я теперь только получить 2 неразрешенных внешние:

error LNK2001: unresolved external symbol _IID_IDirectInput8W 
error LNK2019: unresolved external symbol [email protected] 

Это соответствующий код, который был взят из первого звена, с незначительными изменениями:

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? Заранее спасибо.

UPDATE

мне удалось решить с помощью первого

#include <InitGuid.h> 

Но второй сохраняется, к моему разочарованию ...

ответ

1

Убедитесь, что ваш включать каталоги имеют эту запись:

$(DXSDK_DIR)include 

Теперь для библиотеки d Каталоги задали следующее:

$(DXSDK_DIR)lib\x86 

Существует известная проблема, однако, при установке визуальной студии, за которой следует directx sdk. Если предыдущие предложения не решили проблему, попробуйте удалить визуальную студию (убедитесь, что вы также удалили время выполнения). И установите его снова после установки directx sdk. Затем используйте настройки, которые я написал здесь, и это, вероятно, будет работать (это для меня).

+1

wow ... Я, очевидно, опечатал каталоги. Большое спасибо, сэр – rubbyrubber

0

У меня была такая же ошибка и разрешена путем ссылки с dinput8.lib и dxguid.lib. Интересно, что мне не пришлось включать InitGuid.h.

Смежные вопросы