Domanda

Sono in procinto di scrivere un'applicazione per comunicare con i dispositivi USB utilizzando WinUsb.dll. Questa è una libreria in modalità utente che consente la comunicazione con un dispositivo attraverso winusb.sys installato come il suo conducente nel kernel.

Sto scrivendo questa applicazione in C ++ con Visual Studio 2008.

L'intestazione WinUsb.h si trova nel DDK di Windows in modo da aggiungere il percorso include "D: \ WinDDK \ 7100.0.0 \ inc \ DDK". Allora ottengo un errore che Usb.h non può essere trovato, che comprende WinUsb.h, Usb.h è anche nel DDK, ma in una directory diversa, quindi aggiungo "D: \ WinDDK \ 7100.0.0 \ inc \ api", come un includono dir.

Una volta aggiungo che percorso poi tutto va in bagno e ho iniziare a ricevere errori di compilazione in stdio.h e un mucchio di altri posti strani.

Io davvero non voglio utilizzare il sistema di compilazione e DDK compilatore al fine di utilizzare semplicemente questa DLL, questo è uno dei motivi principali che sto usando WinUSB invece di scrivere un driver appropriato.

Qualcuno ha costruito un'applicazione utilizzando WinUsb.dll e Visual Studio?

È stato utile?

Soluzione

Sto lavorando sulla scrittura di una libreria USB multi-piattaforma e utilizzando il DDK costruire dell'ambiente renderebbe il mio processo di compilazione molto più complicato.

WinUSB è pensato per essere utilizzato dalle applicazioni client per i dispositivi che caricano WinUsb.sys come il loro autista. Tuttavia non sembra essere una versione delle intestazioni WinUSB imballati per l'uso nei programmi in modalità utente (non inclusi i driver UMDF).

Quello che ho finito per fare stava copiando i pochi header che supportano winusb.h fuori del DDK e in una directory privata, ho quindi fare riferimento a quella directory come una directory includere durante la compilazione.

Queste sono le intestazioni che avevo bisogno di copiare:

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

Una volta avevo questi inseriti in un elenco privato e collegati con winusb.lib nel DDK sono stato in grado di compilare ed eseguire il mio progetto in Visual Studio.

Non so se mi consiglia questo metodo come potrebbe essere male quando le intestazioni cambiano tra DDK rilascia, ma io aprirò un bug CONNECT per vedere se posso ottenere MS per creare un pacchetto di intestazioni WinUSB per utilizzare in applicazioni in modalità utente client.

Altri suggerimenti

Storicamente DDK e l'SDK non hanno giocato bene insieme, ma questo problema è stato risolto qualche tempo prima Vista è stato rilasciato. Tuttavia, sembra che si potrebbe essere parti di uno SDK con un altro, che non è una buona miscelazione. Mi piacerebbe utilizzare il DDK costruire ambiente o almeno dare un'occhiata al percorso INCLUDE l'ambiente DDK imposta e replicarlo esattamente nelle impostazioni del progetto VS.

Si noti che è possibile utilizzare il DDK costruire ambiente e utilizzare ancora il VS IDE per la creazione di un 'progetto di makefile' o si potrebbe essere in grado di usare qualcosa come strumenti DDKBUILD del PPR o Hollistech di:

Non ho usato questi, quindi non so come funzionano, ma è da notare che, nonostante i loro nomi simili e utilizza sono diversi strumenti.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top