我在Visual Studio 2012中的解決方案有三個項目。一個WinForms項目和兩個VC++項目(庫)。最初所有的開發都是在Windows 7 Professional 32 Bit上完成的。但最近,我的系統已更新爲Windows 7 Professional 64位。從32位變爲64位
我的應用程序通過設置爲AnyCPU的Active Solution Platform成功運行。但是,當應用程序啓動時,我執行了一些調用底層VC++庫的操作,該應用程序崩潰時,dll的FileNotFoundException
。
那麼我應該將主動解決方案平臺更改爲x64?或者可以保持原樣。
我試圖將活動解決方案平臺更改爲x64。但該DLL沒有建立。我得到一個error LNK2019: unresolved external symbol
我從來沒有使用過64位之前。我應該怎樣做我的應用程序構建?
未找到的符號出現在靜態庫的第三個VC++項目中。
WinForms依賴於dll,而dll依賴於靜態lib。
更新:
當構建配置設置爲AnyCPU,我得到一個System.BadImageFormatException
。根據其他信息,它說無法加載文件或程序集dll_name,....
。嘗試加載格式不正確的程序。
爲什麼你不告訴我們更多關於你遇到的錯誤。什麼符號沒有解決? – 2015-02-12 04:43:20
除非應用程序在64位模式下運行有令人信服的理由,否則將其保留爲32位可能會更簡單。這意味着將主動解決方案平臺設置爲x86。 – 2015-02-12 05:06:42
64位進程無法調用32位dll,反之亦然。你必須確保程序中的所有調用函數都是64位版本 – 2015-02-12 05:11:34