連結器工具警告 LNK4286
'filename_1.obj' 中定義的符號 'symbol' 是由 'filename_2.obj' 匯入
__declspec(dllimport) 已針對符號指定,即使符號是在相同影像中filename_1.obj對象檔中定義也一樣。 __declspec(dllimport)
拿掉修飾詞以解決此問題。
備註
警告LNK4286是連結器工具警告LNK4217的較一般版本。 當連結器可以告知哪個物件檔參考符號,但無法指出哪個函式時,連結器會產生警告LNK4286。
若要解析LNK4286,請從 filename_2.obj 中所參考符號的正向宣告中移除__declspec(dllimport)
宣告修飾詞。
雖然最終產生的程式代碼運作正常,但呼叫匯入函式所產生的程式代碼比直接呼叫函式更有效率。 當您使用 /clr 選項進行編譯時,不會出現此警告。
如需匯入和匯出數據宣告的詳細資訊,請參閱 dllexport、dllimport。