2013-08-21 60 views
0

我遇到了MFC问题。MFC和动态链接

我已阅读了很多关于链接,静态与动态以及它们之间的差异。

我的项目是一个开源项目,有大约2000个我没有写过的文件,我刚刚调整了项目。

我现在的问题是,我想能够克隆到另一台计算机的程序。 第一台计算机可以运行该程序,我认为这是可能的,因为VS 2008 proffesional被安装,这意味着所有的DLL都存在。在第二台计算机上,该程序启动但冻结,我确实认为这意味着它无法找到DLL或可能是错误的版本。

我已经尝试过静态链接,但由于该项目包含一个_AFXDLL代码,所以无法编译。我已经使用depends.exe来生成依赖关系报告,解析报告并检查是否存在所有文件。在两台计算机上都存在所有的DLL文件。

我的问题是,是否有知道为什么我的程序冻结?在一台机器上安装VS似乎有窍门,所以我认为VS专业版会复制一些我不知道的重要文件。如果是这样,是否有找到这些文件的好方法?

+0

Freez在这里停止工作或?你有没有使用LoadLibrary?我没有错你的处理动态链接.. –

+0

箭头变成沙漏。我搜查了另一台计算机,可能我没有重新分配正确版本的DLL。找到一个链接,指向哪个dll重新发布http://msdn.microsoft.com/en-us/library/8kche8ah(v=vs.90).aspx – Pphoenix

回答

1

问题现在已解决!

答案很简单,CRT-和MFC文件有不同的版本。为了确保版本始终相同,可以将文件与应用程序一起重新分发。 Jochen Kalmbach写了一篇关于如何做到这一点的非常简单和精确的教程here

我希望这个答案可以帮助别人! :)