2014-08-28 61 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

相关问题