Pregunta

Estoy en el proceso de escribir una aplicación para comunicarme con dispositivos USB usando Winusb.dll. Esta es una biblioteca de modo de usuario que permite la comunicación con un dispositivo a través de Winusb.sys instalado como su controlador en el núcleo.

Estoy escribiendo esta aplicación en C ++ con Visual Studio 2008.

El encabezado Winusb.h se encuentra en el DDK de Windows, por lo que agrego la ruta de inclusión "D: winddk 7100.0.0 inc ddk". Luego recibo un error de que USB.H no se puede encontrar qué winusb.h incluye, USB.H también está en el DDK pero en un directorio diferente, por lo que agrego "D: winddk 7100.0.0 inc api" como como Un directorio de incluido.

Una vez que agrego ese camino, todo entra en el inodoro y empiezo a recibir errores de compilación en stdio.h y un montón de otros lugares extraños.

Realmente no quiero usar el sistema de compilación DDK y el compilador para simplemente usar esta DLL, esa es una de las principales razones por las que estoy usando Winusb en lugar de escribir un controlador adecuado.

¿Alguien ha creado una aplicación usando Winusb.dll y Visual Studio?

¿Fue útil?

Solución

Estoy trabajando en escribir una biblioteca USB multiplataforma y usar el entorno de compilación DDK haría que mi proceso de compilación sea mucho más complicado.

WinUSB está destinado a ser utilizado por aplicaciones de clientes para dispositivos que cargan a Winusb.sys como su conductor. Sin embargo, no parece haber una versión de los encabezados de Winusb empaquetados para su uso en programas en modo de usuario (sin incluir controladores UMDF).

Lo que terminé haciendo fue copiar los pocos encabezados que apoyan a Winusb.h fuera del DDK y en un directorio privado, luego referencia a ese directorio como un directorio de incluido durante la construcción.

Estos son los encabezados que necesitaba para copiar:

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

Una vez que los incluí en un directorio privado y vinculado con Winusb.lib en el DDK pude compilar y ejecutar mi proyecto en Visual Studio.

No sé si recomendaría este método, ya que podría ser malo cuando los encabezados cambian entre las versiones de DDK, pero abriré un error de conexión para ver si puedo obtener MS para crear un paquete de encabezados de Winusb para usar en el cliente Aplicaciones de modo de usuario.

Otros consejos

Históricamente, el DDK y el SDK no han jugado bien juntos, pero ese problema se solucionó en algún momento antes de que Vista fuera lanzado. Sin embargo, parece que podría estar mezclando partes de un SDK con otro, lo que no es bueno. Usaría el entorno de compilación DDK o al menos echaría un vistazo a la ruta de inclusión que el entorno DDK establece y lo replicará exactamente En la configuración del proyecto VS.

Tenga en cuenta que puede usar el entorno de compilación DDK y aún usar el VS IDE creando un 'Proyecto MakeFile' o puede usar algo como las herramientas DDKBuild de OSR o Hollistech:

No los he usado, así que no estoy seguro de qué tan bien funcionan, pero tenga en cuenta que a pesar de sus nombres y usos similares, son herramientas diferentes.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top