簡體   English   中英

鏈接器看不到.lib內的功能

[英]Linker doesn't see function inside .lib

我正在用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文件設置為Project Properties> Configuration Properties> Linker> Additional Dependencies:

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中找不到任何有趣的東西,而應該找到我的麻煩函數...知道為什么會發生這種情況嗎?

我看你可能有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只是不包含該函數(最好嘗試一下函數名的某些部分以確保結果)。 如果您得到了某些東西,則指向lib的路徑是錯誤的。 真的就是所有可能導致問題的原因。 如果運行setenv時出現問題,則應使用其他方式將目錄轉到您正在使用的MSVC,然后轉到VC \\ bin並運行vcvars32.bat,該操作應相同。

我很to愧地說我發現了問題:(。我是C \\ C ++ noob,但仍然...

當我在c ++文件中導入C模塊時,在include周圍沒有extern "C"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM