ج# خطأ في اكتشاف عصا التحكم
سؤال
أحاول إنشاء تطبيق في C# يستخدم عصا التحكم. ذهبت إلى "http://www.codeproject.com/kb/directx/joystick.aspx"ونسخت المثال بشكل أساسي ، لكنني استمر في الحصول على خطأ المتابعة:" ليس تطبيق Win32 صالح. (استثناء من Hresult: 0x800700C1) ". التطبيق هو حاليًا تطبيق وحدة تحكم لأغراض الاختبار. لقد استخدمت ما يلي يتضمن:
"باستخدام microsoft.directx ؛" "باستخدام microsoft.directx.directInput ؛"
وخط الكود الذي يلقي الخطأ هو
DeviceList gameControllerList = Manager.GetDevices(DeviceClass.GameControl,EnumDevicesFlags.AttachedOnly);
كما أنني أستخدم Windows 7 ، لست متأكدًا مما إذا كان ذلك يساعد أم لا.
المحلول
إذا كنت تستخدم إصدار 64 بت من Windows 7 ، فتأكد من تجميع التطبيق الخاص بك لـ X86. يتم دعم DirectX المدارة فقط في 32 بت ، لذلك إذا كنت تقوم بتجميع استهداف 64 بت أو anycpu ، فسيتم رميها بالخطأ الذي تتلقاه.
إذا كنت بحاجة إلى دعم هذا مقابل 64 بت ، أوصي بتحويل الكود الخاص بك للاستخدام Slimdx بدلا من المدارة directx. (شخصيا ، أوصي بالقيام بذلك على أي حال ، لأن Slimdx أعلى بكثير من MDX ...)