使用visual studio调试libusb源码

使用visual studio调试libusb源码

最近在做usb相关的开发工作,实际碰到的问题暂未解决,记录一下过程中关于libusb调试的问题
实际调用libusb接口时,可能会出现一些返回错误。比如我目前碰scsi命令的READ(10)去调用libusb接口libusb_bulk_transfer时,返回了Input/OutPut Error的问题。希望通过调试的方法定位到问题。

我这里直接用的vs 2013调试,原先尝试mingw编译无法通过。
后又用cygwin编译,可以通过,但是产生的dll好像调用的时候也会有问题,反正坑很多。

然后用的vs 2010编译时又报cl.exe相关的一个错误。
试到最后只有vs 2013稍微可靠一些。

贴上源码github地址:https://github.com/libusb/libusb
或者直接git clone https://github.com/libusb/libusb.git

  • 直接使用vs2013打开相关工程,工程路径位于libusb\msvc\下面,每个版本的vs有每个版本的解决方案,我用的vs 2013
  • 打开后直接编译,这一步我没什么问题,直接通过。
    使用visual studio调试libusb源码
  • 之后就是调用了,这里生成的是dll,vs通过引用.lib的方式进行调用。但是修改源码好像不会影响.lib的生成,只会影响.dll的生成。调用.lib的方法网上找一下资料有很多,这里不花时间介绍了。
    贴一个链接简单介绍:https://www.cnblogs.com/labfans/p/8809192.html
  • 之后就是进行源码的修改了,修改了源码下sync.c中的一行,对传输状态进行了打印。然后重新生成一下dll
    使用visual studio调试libusb源码
  • 将生成的dll放到和可执行文件同一路径即可,可以看到已经成功加入打印并输出。(左侧是调用,右侧是libusb源码)
    使用visual studio调试libusb源码