سؤال

أنا في عملية كتابة تطبيق للتواصل مع أجهزة USB باستخدام Winusb.dll. هذه مكتبة وضع المستخدم تتيح التواصل مع جهاز من خلال WinusB.sys مثبتة كبرنامج تشغيل في Kernel.

أكتب هذا التطبيق في C ++ مع Visual Studio 2008.

تم العثور على رأس Winusb.h في Windows DDK لذلك أقوم بإضافة مسار التضمين "D: WINDDK 7100.0.0 Inc DDK". ثم احصل على خطأ في أنه لا يمكن العثور على USB.H الذي يتضمن Winusb.h، USB.H هو أيضا في DDK ولكن في دليل مختلف، لذلك أقوم بإضافة "D: WINDDK 7100.0.0 Inc API تشمل دير.

بمجرد أن أضيف هذا المسار، كل شيء يذهب في المرحاض، وأبدأ في الحصول على أخطاء الترجمة في Stdio.h وحفنة من الأماكن الغريبة الأخرى.

أنا حقا لا أريد استخدام نظام بناء DDK ومترجم من أجل استخدام DLL هذا ببساطة، وهذا هو أحد الأسباب الرئيسية التي أستخدمها WinusB بدلا من كتابة برنامج تشغيل مناسب.

هل بنى أي شخص طلب باستخدام Winusb.dll و Visual Studio؟

هل كانت مفيدة؟

المحلول

أعمل على كتابة مكتبة USB عبر المنصة واستخدام بيئة بناء DDK ستجعل عملية البناء أكثر تعقيدا.

من المفترض أن تستخدم WinusB من قبل تطبيقات العميل للأجهزة التي تحتفظ WinusB.SYS كبرنامج التشغيل. ومع ذلك، لا يبدو أن هناك نسخة من رؤوس WinusB المعبأة للاستخدام في برامج وضع المستخدم (غير بما في ذلك برامج تشغيل UMDF).

ما انتهى به الأمر، كان يقوم بنسخ الرؤوس القليلة التي تدعم WinusB.H من DDK وإلى دليل خاص، ثم أشير إلى ذلك الدليل كدليل كإشارة إلى دليل أثناء الإنشاء.

هذه هي الرؤوس التي أحتاجها لنسخ:

POPPACK.h
PSHPACK1.h
usb.h
usb100.h
usb200.h
winusb.h
winusbio.h

بمجرد أن أدرجت هذه الموجودة في دليل خاص وترتبط winusb.lib في DDK، كنت قادرا على ترجمة وإدارة مشروعي في Visual Studio.

لا أعرف إذا كنت أوصي بهذه الطريقة لأنها قد تكون سيئة عندما يتغير الرؤوس بين إصدارات DDK، لكنني سأفتح خطأ في الاتصال لمعرفة ما إذا كان يمكنني الحصول على MS لإنشاء حزمة من رؤوس WinusB للاستخدام في العميل تطبيقات وضع المستخدم.

نصائح أخرى

تاريخيا، لم يلعب DDK و SDK معا جيدا، لكن هذه المشكلة ثابتة في وقت ما قبل إصدار نظام التشغيل Vista. ومع ذلك، يبدو أنك قد تختلط أجزاء من SDK واحد مع آخر، وهو أمر غير جيد. أود استخدام بيئة بناء DDK أو على الأقل إلقاء نظرة على مسار التضمين، تقوم بيئة DDK بإعدادها وتكرارها بالضبط في إعدادات مشروع VS.

لاحظ أنه يمكنك استخدام بيئة بناء DDK وما زالت تستخدم VS IDE من خلال إنشاء "مشروع Makefile" أو قد تكون قادرا على استخدام شيء مثل أدوات OSR أو أدوات DDKBuild Hollistech:

لم أستخدم هذه، لذلك أنا لست متأكدا من مدى جودة عملها، لكن لاحظ أنه على الرغم من أسمائه مماثلة واستخداماتها هي أدوات مختلفة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top