2011-07-07 55 views
0

我在Microsoft Visual Studio 2005中创建了一个DLL。然后我试图在CodeBlocks IDE中的其他计算机上的其他项目中使用它。项目是建立的,但是当它使用DLL的功能时,我得到一个错误:“该程序无法启动,因为MSVCR80D.dll从您的计算机丢失,请尝试重新安装程序来解决这个问题”。如何建立我的DLL没有依赖MSVCR80D.dll或建立在这个MSVCR80D.dll?程序无法启动,因为MSVCR80D.dll

回答

1

您试图运行调试版本,该版本链接到CRT的调试版本。后者只适用于安装了VS的地方。您应该在其他机器上使用您的项目的发布版本(或者手动复制所有依赖的调试DLL,根据许可证这是不合法的......)。

+0

也许我会错误的方式..首先,我释放DLL的lib文件。然后,我将.dll复制到带有.exe的目录中,包括dll的项目代码头文件以及.lib文件的项目属性设置路径。但没有结果。 也许我需要在Visual Studio中的dll项目中设置一些属性? – dmigous

+0

@dmigous你的构建过程听起来很好。问题在于VS构建的DLL带有运行时依赖关系。任何C/C++程序都使用CRT。在VS中,CRT(动态链接时)位于MSVCR * .dll中。但是,Debug版本使用不同于CRT的CRT DLL(Debug以“D”结尾)。因此,您应该将VS编译模式更改为“Release”,并在运行CodeBlocks项目时使用在release文件夹中创建的DLL。请参阅[设置调试和发布配置](http://msdn.microsoft.com/en-us/library/wx0123s5.aspx)。 – eran

+0

谢谢你的帮助。问题通过您的建议解决,并通过在项目属性 - >配置属性 - >链接器 - >清单文件中关闭“生成清单”。实际上,现在我不知道它是如何帮助的,但它的工作! – dmigous

相关问题