2012-01-19 10 views
8

DaemonTools gibi bir şey yazmak istiyorum: kendisini sisteme gerçek bir aygıt olarak sunan bir yazılım (önceki örnekte bir DVD-ROM) ancak verileri bir dosyadan okur. Benim ihtiyacım DVD-ROM ile sınırlı değil. İlk gol, Windows için bir oyun çubuğu/gamepad.Sanal bir aygıtı kodlamak için başlangıç ​​noktası

Web geliştiriciyim, bu yüzden böyle bir projeye nereden başlayacağımı bilmiyorum. C/C++ 'da yazılmasının gerekeceğine inanıyorum ama bunun dışında nereden başlayacağımı bilmiyorum.

Herkes böyle bir şey denedi ve bana bazı ipuçları verebilir mi?

+0

Bu şekilde bir gamepad'i nasıl kullanacaksınız, kesinlikle oyun uygulamanızı yükledikten sonra, artık herhangi bir netleme ayarına sahip olmadınız veya sanal (anladığım kadarıyla) gamepad ile kontrol edebilecek misiniz? –

+0

"Gamepad" i başka bir makineden lan/internet/TCP ile kontrol ederseniz ne olur? –

+0

Teorik olarak, sanal çözümlerin geliştirilmesinin ana sebebi, ürünün donanım maliyetinden tasarruf etmektir, ancak bu durumda bir gamepad satın almanıza gerek kalmaz, ancak başka bir bilgisayar satın almanız gerekecek Daha önce sahip olmadıysanız. Bunun sadece bir proje olduğunu takdir ediyorum, ancak uygulamanın kodlama saatlerini geçirmeden önce nasıl çalışacağını düşünmeye değer:) –

cevap

8

Çoğu sürücü C veya C++ ile yazılmıştır, bu nedenle bu dilleri makul ölçüde iyi bilmiyorsanız, başlamadan önce bunlara aşina olmak istersiniz. Windows programlama, yeni başlayanlar için kafa karıştırıcı olabilecek birçok ilginç kısayol kullanır - örneğin PVOIDs (typedef void* PVOID) ve LPVOID'ler (typedef void* far LPVOD;). Yapıların yanı sıra yapılar olarak işaretçilerle mutlu olmanız gerekecek, çünkü bunların birçoğunu kullanacaksınız. Windows stili C/C++ ile uğraşmak için bir alıştırma olarak gerçekten basit bir win32 uygulaması yazmayı öneririm.

Bir sonraki görüşme noktanız, Windows Driver Kit - gezinmek içindir - özellikle, Windows için sürücüler oluşturmak için ona ihtiyacınız olacaktır. Bu aşamada benim önerme kabiliyetim gerçekten yaptığınız şeye ve mevcut donanımınıza vb. Sahip olduğunuz donanımlara veya gerçekten donanım kullanıp kullanmadığınıza bağlıdır. Donanımınızı nasıl kullanacağınızı bilmeniz ve oradan da bir sürücü yazmanın uygun bir yolunu seçmeniz gerekecek - elde etmek için neye ihtiyacınız olduğuna bağlı olarak birkaç farklı sürücü türü var. Bunlardan biri.

Windows sürücü seti, sanal bir ekmek kızartma makinesi kullanan bir sürücü de dahil olmak üzere çok sayıda örnek içerir. Bunlar size başlangıç ​​noktaları sağlamalıdır.

Bunu sanal makinede denemenizi öneririm. Sürücünüz başarıyla oluşturuluyorsa, ancak bir çalışma zamanı hatasına neden oluyorsa, çekirdek modundaysanız sonuç tamamen pencerelere çarpabilir. Bu nedenle, sisteminizi yeniden başlatmak için beklemek zorunda kalmamanızın yanı sıra, zarar verirseniz sanal makineyi geri döndürebilmeniz için kendinizi biraz acı çekeceksiniz. Sanal seri kablolar kullanılabildiğinden, hata ayıklama işlemini de kolaylaştırır.


Bu

oldukça büyük bir iştir, bu yüzden başlamadan önce, ben daha iyice, Windows gelişimini araştırmak istiyorum - ilk Windows API'leri kullanarak bunu yapamaz işaretleyin, ardından kullanıcı modunda bir göz Sürücü çerçevesi, nihayet ve sadece ihtiyacınız varsa, çekirdek düzeyindeki şeylere bakın.

+0

+ 1 gibi soruların cevapları "yok" dır. Bunu yapmamanız bile tavsiye edilemez olsa da, cevabınız çok bilgilendiriciydi. –