2014-08-28 58 views
0

我確實有一個程序,在32位/ Windows 7完美地編譯我的dll,但無法生成64位的dll。所有代碼重新生成在不同的文件夾中分開另外,我沒有自己開發的需要鏈接到這個混合程序的庫。與Windows本身相關的東西似乎也不一樣。DLL生成32位但失敗,如果在64位生成相同 - Visual Studio 2013

任何暗示這個問題的原因是什麼?

輸出結果如下。

問候..

1>  Creating library D:\Lib\LepComDll\x64\Release\LEPCOM.lib and object D:\Lib\LepComDll\x64\Release\LEPCOM.exp 
1>LEPCOM.exp : error LNK2001: unresolved external symbol "int __stdcall LepComClose(void)" ([email protected]@YGHXZ) 
1>LEPCOM.exp : error LNK2001: unresolved external symbol "void __stdcall LepComDebug(int)" ([email protected]@[email protected]) 
1>LEPCOM.exp : error LNK2001: unresolved external symbol "void __stdcall LepComDumpRx(void)" ([email protected]@YGXXZ) 
1>LEPCOM.exp : error LNK2001: unresolved external symbol "int __stdcall LepComGet1Wire(int,int,char *)" ([email protected]@[email protected]) 
1>LEPCOM.exp : error LNK2001: unresolved external symbol "int __stdcall LepComGetAccel(int)" ([email protected]@[email protected]) 
1>LEPCOM.exp : error LNK2001: unresolved external symbol "double __stdcall LepComGetDLLVersion(void)" ([email protected]@YGNXZ) 
1>LEPCOM.exp : error LNK2001: unresolved external symbol "int __stdcall LepComGetIds(class ATL::CStringT<char,class StrTraitMFC_DLL<char,class ATL::ChTraitsCRT<char> > > *)" ([email protected]@[email protected][email protected][email protected]@[email protected]@@@@[email protected]@@Z) 
+6

當你創建你的庫時,你鏈接到的所有庫也必須是64位 – Lefsler 2014-08-28 00:51:24

+0

如何檢查該庫。我編程的所有庫都在編譯。我能想到的唯一不是基本的Windows庫如MFC,ATL和其他。我不知道如何改變它,甚至看看它們是誰。建議? – DougXpto 2014-08-28 01:51:14

+0

檢查任何庫或對象文件'LepComClose'和朋友應該被定義。 – 2014-08-28 02:09:43

回答

0

我解決這個問題。我已經刪除了.def文件,並要求編譯器生成代碼並運行。看起來.def只是32位版本所必需的。

+0

'.def'文件完全適用於64位DLL版本。刪除它可能會有乾淨重建的副作用,但它不應該是實際的解決方案。 – 2014-08-29 16:23:56

+0

有關如何正確操作的建議?我可能會在.def或其他參數中丟失一些東西。這是1999年創建的一箇舊版本。歡迎提供建議。 – DougXpto 2014-08-30 17:29:10

相關問題