繁体   English   中英

WinUsb with C++ Builder 10.3 社区版

[英]WinUsb with C++ Builder 10.3 community edition

有没有人成功地将winusb.h与 Embarcadero 的 C++Builder 10.3 社区版一起使用?

我最近下载了 10.3,以更新我几年前为 Windows XP(使用 Borland C++Builder 6)编写的 PC 桌面/笔记本电脑应用程序,它使用 WinUSB 功能来驱动(一次一台)三台机器。

尝试在 Windows 10 上运行可执行文件会导致 USB 设备访问出现保护错误 - 它在 XP 和 Windows 7 上运行良好。

USB 设备已被 Windows 10 更新为自动识别(谢谢,P. Batard),并使用 Microsoft 在如何访问 USB 设备的示例,我确信该设备没有问题, ,我可以使用 WinUSB function 调用来查询描述符,这些调用是在 Windows 10 计算机上的 Visual Studio 环境中编码的。

回到 Embarcadero 的 C++Builder 10.3 社区版 - 我可以编写一个响应按钮按下的应用程序(编译、链接和执行 ok),但是当我包含来自winusb.h的任何函数时,我得到了错误:

[ilink32 错误] 错误:未解析的外部“WinUsb_(func)”引用自(路径已编辑)UNITx.OBJ

通常,我认为这意味着我没有包含所需的 header,或者无法解决 header(或 lib)的路径,但我很确定这不是这种情况 - Z099E43995346F3394C绝对是“包含”的,我已经编辑了 IDE 路径以明确包含winusb.hwinusb.lib文件目录 - 它们被“隐藏”得很深,但肯定存在。 我什至尝试将这两个文件复制到项目目录,但无济于事。

我搜索了 Embarcadero 社区网站,但找不到对“winusb”的引用。

我很欣赏这是一个比 C++Builder 6 复杂得多的环境,而且我很可能会遗漏一些东西,但我无法摆脱 IDE 中的某些东西无法正常工作的感觉 -其他标题链接确定。

想法,有人请吗?

It is not enough to simply point the IDE to the folder containing Winusb.lib , you have to actually add that .lib file to your C++ project, or reference it explicitly in your C++ code using a #pragma comment(lib, "Winusb.lib")语句,否则.lib文件将不会传递给 linker 以解析您对 WinUSB 函数的调用。

顺便说一句,C++Builder 6 中的大多数.lib文件也需要这个额外的步骤。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM