代码之家  ›  专栏  ›  技术社区  ›  joshperry

编译使用WinUsb的应用程序

  •  4
  • joshperry  · 技术社区  · 16 年前

    我用Visual Studio 2008在C++中编写这个应用程序。

    在Windows DDK中可以找到标题WinUsb.h,因此我添加了包含路径“D:\WinDDK\7100.0.0\inc\DDK”。然后我得到一个错误,无法找到WinUsb.h包含的Usb.h,Usb.h也在ddk中,但在不同的目录中,因此我添加了“D:\WinDDK\7100.0.0\inc\api”作为包含目录。

    我真的不想为了简单地使用这个DLL而使用DDK构建系统和编译器,这是我使用WinUsb而不是编写适当的驱动程序的主要原因之一。

    2 回复  |  直到 16 年前
        1
  •  4
  •   joshperry    16 年前

    我正在编写一个跨平台的USB库,使用DDK构建环境将使构建过程更加复杂。

    WinUsb将由客户端应用程序用于加载WinUsb.sys作为其驱动程序的设备。然而,似乎没有一个版本的WinUsb头被打包用于用户模式程序(不包括UMDF驱动程序)。

    我最后做的是将几个支持winusb.h的头文件从DDK复制到一个私有目录中,然后在构建过程中将该目录引用为include目录。

    以下是我需要复制的标题:

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

    我不知道我是否会推荐这种方法,因为在DDK版本之间更改头时,这种方法可能不好,但我会打开一个连接错误,看看是否可以让MS创建一个WinUsb头包,以便在客户端用户模式应用程序中使用。

        2
  •  1
  •   Michael Burr    16 年前

    从历史上看,DDK和SDK并没有很好地结合在一起,但这个问题在Vista发布之前就已经解决了。然而,看起来您可能将一个SDK的部分与另一个SDK混合,这是不好的。我要么使用DDK构建环境,要么至少看看DDK环境设置并复制它的INCLUDE路径 确切地 在VS项目设置中。

    请注意,您可以通过创建“makefile项目”使用DDK构建环境,但仍然可以使用VS IDE,或者可以使用OSR或Hollistech的DDKBUILD工具:

    我没有使用过这些工具,所以我不确定它们的工作情况如何,但请注意,尽管它们的名称和用途相似,但它们是不同的工具。

    推荐文章