2012-01-19 15 views
8

Quiero escribir algo como DaemonTools: un software que se presenta al sistema como un dispositivo real (un DVD-ROM en el ejemplo anterior) pero lee los datos de un archivo en su lugar. Mi requisito no está limitado a DVD-ROM. El primer objetivo es un joystick/gamepad para Windows.Punto de inicio para codificar un dispositivo virtual

Soy desarrollador web, por lo que no sé desde dónde podría comenzar un proyecto de este tipo. Creo que tendrá que estar escrito en C/C++, pero aparte de eso, no tengo ni idea de por dónde empezar.

¿Alguien intentó algo como esto y me puede dar algunos consejos para comenzar?

+0

¿Cómo utilizaría un mando de esta manera, sin duda una vez que había cargado su aplicación de juegos, etc usted ya no se ha definido ninguna atención o control con el virtual (como yo lo entiendo) gamepad? –

+0

¿Qué pasa si controlas el "gamepad" desde otra máquina a través de lan/internet/TCP? –

+0

En teoría eso debería ser posible, sin embargo, la razón principal para desarrollar soluciones virtuales es ahorrar en el costo del hardware del producto, etc. En este caso, sin embargo, no necesitarías comprar un gamepad pero tendrías que comprar otra PC para ejecutar si aún no tienes uno. Aprecio que este es solo un proyecto, pero vale la pena pensar cómo funcionará la implementación antes de pasar horas codificándolo:) –

Respuesta

8

La mayoría de los controladores están escritos en C o C++, por lo que si no conoce esos idiomas razonablemente bien, querrá familiarizarse con ellos antes de comenzar. La programación de Windows usa muchos atajos interesantes que pueden ser confusos para un principiante, por ejemplo PVOIDs (typedef void* PVOID) y LPVOID (typedef void* far LPVOD;). Tendrá que estar contento con los punteros como conceptos y estructuras, ya que usará muchos de ellos. Sugiero escribir una aplicación win32 muy sencilla como ejercicio para familiarizarme con el estilo de Windows de hacer C/C++.

Su próximo puerto de escala es navegar en el Windows Driver Kit, específicamente, lo necesitará para compilar controladores para Windows. En esta etapa, mi capacidad para asesorar realmente depende de lo que esté haciendo y del hardware que tenga disponible, etc., o si realmente está usando hardware o no. Deberá saber cómo manejar su hardware y, a partir de allí, deberá elegir la forma adecuada de escribir un controlador; existen diferentes tipos de controladores según lo que necesite lograr y es posible que se conecte a uno de estos.

El kit del controlador de Windows contiene una gran cantidad de muestras, incluido un controlador que implementa una tostadora virtual. Estos deberían proporcionarle puntos de partida.

Le sugiero que realice la prueba de esto en una máquina virtual. Si su controlador compila con éxito, pero causa un error de tiempo de ejecución, el resultado podría bloquear por completo Windows si está en modo kernel. Por lo tanto, se ahorrará algo de dolor si puede revertir la máquina virtual si la daña, además de no tener que esperar a que el sistema se reinicie. También facilitará la depuración ya que se pueden usar cables en serie virtuales.


Esto es absolutamente una gran empresa, por lo que antes de empezar, me gustaría investigación para el desarrollo de Windows más a fondo - Comprobar que no se puede hacer uso de la API de Windows en primer lugar, a continuación, echar un vistazo a la facilidad de uso del modo marco del controlador, finalmente, y solo si es necesario, mira las cosas a nivel del kernel.

+0

+1 muchas respuestas a preguntas como esta son "no hacer". Aunque hacer esto puede ser desaconsejable, tu respuesta fue muy informativa. –

Cuestiones relacionadas