好像連接缺少對其他項目的一些中間信息。我真的不記得'引用'本地項目是否會自動設置鏈接階段..我實際上覺得很奇怪你說'參考'..對於我來說,「參考」這個詞有點侷限於.Net程序集的世界,因爲VS中的「添加引用」,這使得沒有人關心包含/庫以及哪些IIRC不可用於本地dll,原因很明顯。如果你的意思是你手動配置了鏈接器選項,那麼請原諒我:)
如果不是 - 請解釋你是如何引用本地模塊的。無論哪種方式,如果「引用」提前工作,文件名可能會失去同步,如果你重命名項目,也許文件時間戳有點關閉,VS沒有注意到新版本。簡單清除&重建有時神奇的幫助。如果沒有,您可以嘗試手動刪除Debug/Release/Bin/Obj文件夾,然後再次嘗試重建。
要嘗試進行診斷,第一步是查看鏈接器作爲輸入的內容:在C++/CLI項目的項目屬性頁面中,檢查Linker-> CommandLine並查看名稱類似於「那裏可以看到myOtherNativeCppProjectName.lib。如果不是 - 這裏有問題,只需將它添加到previos鏈接器頁面上的鏈接器選項中,或者重新執行引用添加,然後清理,重建並查看會發生什麼。
要說更多的話,你必須發佈整個錯誤消息 - 這是一個在函數名稱截斷,所以很難判斷它是你的函數還是一些缺少庫模塊。隨着編譯階段的成功,問題出現在鏈接上 - 你是否100%確定你已經實現了該功能?我的意思是,正確的.h文件肯定提供給C++/CLI項目,但是.cpp文件與本地包含的.h文件匹配。忘記添加一個文件也很常見。或者忘了實例化一個模板..或者錯誤地輸入.H和.CPP之間的類/函數名..
您不能像託管的那樣「引用」非託管dll。相反,您必須將相應的.lib文件作爲輸入添加到鏈接器中 – stijn