我正在Visual Studio C / C ++中编写一个小型Win32应用程序,它使用WDK与HID设备进行通信。
我在Options>中添加了以下include目录项目和解决方案> VC ++目录:
D:\WinDDK\7600.16385.1\inc\ddk
D:\WinDDK\7600.16385.1\inc\api
以下库目录:
D:\WinDDK\7600.16385.1\lib\win7\i386
我还将以下lib文件设置为Project Properties>配置属性>链接器>附加依赖项:
hid.lib
但是当我尝试编译时,我得到:
error LNK2028: unresolved token (0A000040) "unsigned char __stdcall HidD_SetOutputReport(void *,void *,unsigned long)" ...
虽然,这应该在hid.lib
中我错过了什么吗?
- 更新 - 在SooWeiTan的建议下,我启用了Properties-> Linker-> Show Progress,现在我在这里看到以下内容:
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中找不到任何有趣的东西,而它应该找到我的麻烦函数......知道为什么会发生这种情况吗?
答案 0 :(得分:0)
我看到你可能有MS SDK。
然后如果你什么都没得到,很明显lib只是不包含那个函数(不妨试试函数名称的某些部分来确保)。如果你得到了什么,lib的路径是错误的。这真的是所有这些都可能导致问题。如果运行setenv时出现问题,其他方式应该是你正在使用的MSVC目录,然后转到VC \ bin并运行vcvars32.bat,这应该做同样的事情。
答案 1 :(得分:0)
我很惭愧地说我发现了问题:(。我是C \ C ++ noob,但仍然......
当我在c ++文件中导入C模块时,包含的内容没有extern "C"
:|