DirectX DirectInput не обнаруживает подключенные устройства - PullRequest
0 голосов
/ 28 июля 2010

Я пытаюсь использовать джойстик в своем приложении C # WPF, используя DirectX (используя Microsoft.DirectX.DirectInput;), но по какой-то странной причине я продолжаю получать сообщение об ошибке в первой строке, где я пытаюсь обнаружить все подключенные устройства. До сих пор в моем приложении есть следующая строка кода в конструкторе:

DeviceList gameControllerList = Manager.GetDevices (DeviceClass.GameControl, EnumDevicesFlags.AttachedOnly);

Ошибка выглядит следующим образом:

Тип ошибки: исключение XamlParseException было обработано.

Сообщение об ошибке: «При вызове конструктора типа« JoystickTest.MainWindow », который соответствует указанным ограничениям привязки, возникло исключение». Номер строки «3» и позиция «9». "

Я работаю над этим примером, который нашел в Интернете: http://www.codeproject.com/KB/directx/joystick.aspx

Моя текущая настройка - 64-разрядная версия WPF, C #, .NET 4.0 и Windows 7

1 Ответ

0 голосов
/ 31 мая 2011

Опоздал на вечеринку здесь, но проблема на самом деле немного глубже, чем она говорит. Он не может инициализироваться, потому что вы используете сборку DirectInput (1.x), которая помещает ваше приложение в сборки смешанного режима. Вам необходимо добавить это в конец узла конфигурации вашего app.config. Последнее, или оно будет продолжать ошибаться из моего опыта.

<startup useLegacyV2RuntimeActivationPolicy="true">
  <supportedRuntime version="v4.0"/>
</startup>

Ключевой компонент - useLegacyV2RuntimeActivationPolicy = "true" - это позволяет вашему приложению использовать более старые требуемые сборки.

...