2012-02-18 4 views
0

Я хотел бы использовать DirectInput в моей XNA-игре, однако у меня возникла проблема, когда дело доходит до ссылки на DLL-файл. Я использую Microsoft Visual Studio C# Express Edition. Это именно то, что я делаю:Сообщение об ошибке при обращении к файлам DLL

  • правой кнопкой мыши «Ссылки»
  • выбрал «добавить ссылку»
  • перейти к DLL-файл и нажмите OK

Затем я получить следующее сообщение об ошибке : enter image description here

Как указано выше, я хотел бы ссылаться на пространство имен Microsoft.DirectX.DirectInput, но я не знаю, какой DLL-файл, в котором он находится, поэтому я просто выбрал «d3dref9.dll». Каждый .dll-файл под этим каталогом не работает, поэтому любой, который я выбираю, дает мне ту же ошибку. Теперь я смог выполнить это с другими DLL-файлами, но по какой-то причине DirectX не будет работать. Я знаю, что это возможно beacuse this парень просто посмотрел на вторую строчку в своем коде.

У меня установлен DirectX SDK, почему я не могу ссылаться ни на один из DLL-файлов, и как я могу это сделать, чтобы я мог?

Спасибо!

+0

Это родные библиотеки DLL. Вам нужно найти управляемых. Его следует назвать чем-то вроде «Microsoft.DirectX.DirectInput.dll». – Cameron

ответ

0

Я думаю, вы пытаетесь ссылаться на DLL, которые не являются сборками .NET и/или не COM-библиотеками.

This link может помочь с расположением в Проппер .dlls:

(копировать/вставить из связанного поста :)

What you need to do is add the correct DLLs as references to your project. Since they are not in the list, you'll have to add them manually. I am assuming you are using the October SDK?

What you'll need to do is:

  1. Right-click on References folder, and select "Add Reference..."
  2. On the .NET tab, select the "Browse" button.
  3. Navigate to where you installed the SDK. (On my machine it is C:\Program Files\Microsoft DirectX 9.0 SDK)
  4. The files you are looking for should be in ".\Developer Runtime\x86\DirectX for Managed Code"
  5. Select the DLLs that you want (in this case Microsoft.DirectX.dll, Microsoft.DirectX.DirectInput.dll)
+0

У меня версия June 2010 отсюда: http://www.microsoft.com/download/en/details.aspx?id=6812 Я думаю, что это самый современный. Единственный октябрьский релиз, который я нашел, был с 2008 года. Почему я должен установить это, когда июнь 2010 года является самым современным? Я спрашиваю, потому что, используя мою версию, каталог «DirectX for Managed Code» отсутствует, и я не могу его найти. – MrSplosion

+0

Возможно, с тех пор они изменили структуру каталога. Вы пытались найти свой диск для «Microsoft.DirectX.DirectInput.dll»? – CodingWithSpike

1

Проблема здесь состоит в том, что вы добавляете ссылку на родной DLL тогда как управляемые проекты поддерживают только управляемые DLLS. Я считаю, что DLL вам нравится Microsoft.DirectX.dll. У этого есть управляемые обертки для DirectX

+0

Какое значение будет у сайта "Microsoft.DirectX.dll"? У меня есть последняя версия DirectX SDK для июня 2010 г. http://www.microsoft.com/download/en/details.aspx?id=6812 – MrSplosion

+0

@MrSplosion Я не совсем уверен. Самый быстрый способ найти его - это поиск «Microsoft.DirectX.dll» из корневого каталога SDK. Если его там нет, я попробую папку .Net SDK, поскольку он может установить DLL там – JaredPar

+0

@MrSplosion выглядит как из этого потока http://social.msdn.microsoft.com/Forums/eu/vssetup/thread/563fcf70- ba0d-4a84-9ebb-10801075a06d они будут находиться в папке ". \ Developer Runtime \ x86 \ DirectX for Managed Code" в папке root SDK. –