It's pretty hard, you have to mess with drivers and all that. Try http://www.jungo.com/wdusb.html It's an application that creates all the low-level source code for you, in both C++ and Delphi if I recall corectly. It's expensive though
creating USB drivers isn't hard once you've got to grips with how the Classes are defined. What are you wanting to do, if its take apart someone elses code, to create your own interface to the device, then often you don't have to replace the driver, if your wanting to port it to another OS, then not wishing to be rude, if your posting here, its a bit beyond you. If your wanting to learn howto talk to a USB device, so u can make your own add-on to an already excisting program take a look at my very badly presented source code on www.0bytes.net/netmd/ thats an example for monitoring the protocol used by Sony's horrible software for the NetMD. What i did there was to hook the applications interface to the driver, this saves having to mess round with making a driver myself. (this was actually for a porting project as all my program does it let you see what is sent).
Read it, know it, love it. Just dive right in to the MS DDK!!! If the USB device you want to interface with is a relatively standard device you can recycle a lot of classes that are already built... just like TheAnimus said. http://msdn.microsoft.com/library/default.asp?url=/library/en-us/gstart/hh/gstart/gs_intro_44iv.asp
Well the thing is: I just bought a new laptop, but it doesnt have a serial port. I need the serial port to hook up my GPS receiver. I have looked around and there are two options: 1. I buy a pcmcia card with a serial port connector on it 2. I get a serial to USB convertor. Option 1 is very expensive. I saw a pcmcia card for 250 euros. Option two is cheap, but then I'll have to re-write my GPS software for the USB port. Any suggestions?
Most RS-232 ports over the USB include a driver that allows any windows program to address them as say COM3.