首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >编译使用WinUsb的应用程序

编译使用WinUsb的应用程序
EN

Stack Overflow用户
提问于 2009-09-29 14:40:36
回答 2查看 6.2K关注 0票数 4

我正在编写一个使用WinUsb.dll与Usb设备通信的应用程序。这是一个用户模式库,允许通过在内核中作为驱动程序安装的winusb.sys与设备通信。

我正在用Visual Studio2008用C++编写这个应用程序。

头文件WinUsb.h位于Windows DDK中,因此我添加了包含路径"D:\WinDDK\7100.0.0\inc\ddk“。然后我得到一个错误,Usb.h无法找到WinUsb.h包含的内容,Usb.h也在ddk中但在不同的目录中,所以我添加了"D:\WinDDK\7100.0.0\inc\api“作为包含目录。

一旦我添加了这个路径,所有的东西都被放到了马桶里,我开始在stdio.h和其他一些奇怪的地方得到编译错误。

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

有人使用WinUsb.dll和Visual Studio构建过应用程序吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-10-03 18:41:02

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

对于将WinUsb.sys作为驱动程序加载的设备,客户端应用程序应使用WinUsb。但是,似乎还没有打包用于用户模式程序(不包括WinUsb驱动程序)的UMDF头的版本。

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

下面是我需要复制的头文件:

代码语言:javascript
复制
POPPACK.h
PSHPACK1.h
usb.h
usb100.h
usb200.h
winusb.h
winusbio.h

一旦我将它们包含在一个私有目录中并与DDK中的winusb.lib链接起来,我就能够在Visual Studio中编译和运行我的项目。

我不知道我是否会推荐这种方法,因为当报头在DDK版本之间发生变化时,它可能会很糟糕,但我将打开一个连接错误,看看是否可以让MS创建一个用于客户端用户模式应用程序的WinUsb报头包。

票数 4
EN

Stack Overflow用户

发布于 2009-09-29 17:14:21

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

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

  • OSR:http://www.osronline.com/article.cfm?article=43
  • Hollistech's:http://www.hollistech.com/Resources/ddkbuild/ddkbuild.htm

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1492982

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档