2011-10-10 73 views
-2

我有一個VS2008 C++項目,目前我在VS2010編譯。它包含一個dll和執行GUI項目。無法解析的外部符號與x64標誌c + +

使用x64標誌dll的構建沒有任何錯誤,但GUI有一些LNK錯誤來運行在dll中。 「未解決的外部符號...」(錯誤LNK 2019和2001) 與Win32標誌沒有LNK錯誤。

,比如我有錯誤:

unresolved external symbol "public :void _cdecl aaa::bbb(void)*([email protected]@@QEAAXXZ) referenced in function "public:__cdecl ccc::ccc(class aaa &)" ([email protected]@[email protected]@@@Z) 

我在x64操作系統上運行。

請幫忙嗎?

+0

* what * unresolved external symbols?此致/ OS /庫? – crashmstr

+0

而錯誤是?有問題的符號? – jpalecek

+0

對不起,但沒有任何未解決的符號的名稱,它很難回答這個問題。順便說一下哪個操作系統 - 我假設Windows 7? –

回答

1

生成據我瞭解你的問題如下:

您的解決方案包含一個類庫項目,並提供用戶界面somesort的應用項目。

您的解決方案在爲win32位環境設置時編譯時沒有問題,但在爲x64位環境編譯時顯示鏈接器錯誤。

當編譯爲x64環境時,您的類庫項目輸出很可能是由GUI引用的。

我建議您嘗試設置您的配置管理器,將您的類庫項目構建爲x64或Win32以匹配您的GUI項目。

檢查您的項目配置是否將類庫建立到特定於環境類型的目錄,並確保您的GUI項目使用對類庫項目的引用而不是輸出DLL。

另外檢查你的dll實際上是在x64環境下構建的。

也許值得檢查一下,您的類庫項目不使用任何舊的Win32特定庫。

0

如果我理解這個權利,您希望構建一個GUI可執行文件並需要將其與您的自定義dll鏈接。所描述的錯誤可能occure的幾個原因,但這是想到什麼:

  • 混搭在DLL中(32位/ 64位)和GUI項目
  • 缺失或不正確的鏈接路徑是* .lib其獲取 您的DLL