gpt4 book ai didi

c++ - 链接器看不到 .lib 内的函数

转载 作者:行者123 更新时间:2023-11-30 18:01:09 24 4
gpt4 key购买 nike

我正在 Visual Studio C/C++ 中编写一个小型 Win32 应用程序,该应用程序使用 WDK 与 HID 设备进行通信。

我在选项 > 项目和解决方案 > VC++ 目录中添加了以下包含目录:

D:\WinDDK\7600.16385.1\inc\ddk
D:\WinDDK\7600.16385.1\inc\api

以及以下库目录:

D:\WinDDK\7600.16385.1\lib\win7\i386

我还将以下 lib 文件设置为“项目属性”>“配置属性”>“链接器”>“其他依赖项”:

hid.lib

但是当我尝试编译时,我得到:

error LNK2028: unresolved token (0A000040) "unsigned char __stdcall HidD_SetOutputReport(void *,void *,unsigned long)" ...

虽然,这应该在 hid.lib 中

我错过了什么吗?

-- 更新 --根据 SooWeiTan 的建议,我启用了“属性”->“链接器”->“显示进度”,现在我在这里看到以下内容:

1>    Searching C:\Program Files\Microsoft SDKs\Windows\v6.0A\\lib\MSCOREE.lib:
1> Found __CorExeMain@0
1> Loaded MSCOREE.lib(mscoree.dll)
1> Found __IMPORT_DESCRIPTOR_mscoree
1> Referenced in MSCOREE.lib(mscoree.dll)
1> Loaded MSCOREE.lib(mscoree.dll)
1> Found mscoree_NULL_THUNK_DATA
1> Referenced in MSCOREE.lib(mscoree.dll)
1> Loaded MSCOREE.lib(mscoree.dll)
1> Searching D:\WinDDK\7600.16385.1\lib\win7\i386\hid.lib:
1> Searching C:\Program Files\Microsoft SDKs\Windows\v6.0A\\lib\kernel32.lib:
...
...
...

据此,我解释说它在 hid.lib 中没有找到任何有趣的东西,而它应该找到我的麻烦函数......知道为什么会发生这种情况吗?

最佳答案

我发现您可能有 MS SDK。

  • 启动cmd.exe,
  • 转到“C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\”——您的版本可能是 6.0
  • 运行“SetEnv.cmd/x86”
  • 转到包含 lib 的目录
  • 运行“dumpbin/exports hid.lib | findstr HidD_SetOutputReport”

然后,如果您什么也没得到,很明显该库不包含该函数(不妨尝试函数名称的某些部分来确保)。如果你得到了一些东西,那么lib的路径是错误的。这确实是所有可能导致问题的原因。如果运行 setenv 时出现问题,其他方法应该是转到您正在使用的 MSVC 目录,然后转到 VC\bin 并运行 vcvars32.bat,这应该会执行相同的操作。

关于c++ - 链接器看不到 .lib 内的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9985424/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com