用MFC写的程序,在别人电脑上运行,总提示缺少DLL文件 在我自己的电脑上运行,一切正常。我想可能是在装VC6的时候,相应的DLL文件都已装好了吧。然而在别人电脑上运行,总提示缺少DLL文件。我曾经试过从网上找到对应的DLL文件放到对应文件夹(System32 ?),一个DLL文件问题解决,却有提示缺少另一个DLL文件。我想问,如何解决这个问题。 是我写的MFC程序在其它电脑上也能正常运行。非常感谢!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 使用Depends查看都需要什么库,一次全copy过去。 谢谢abomber2,希望说的再具体些如何使用静态MFC库?实在Setting--〉Link里选么?选哪些项? "使用Depends查看都需要什么库,一次全copy过去。"您的意思是说,若想在其它电脑上正常运行我的程序就得把Project-〉Dependencies下列出的库都Copy到对方电脑,并和我的程序放在同一目录下,是这样么? // 开始->程序->Microsoft Visual Studio 6.0->Microsoft Visual Studio 6.0 Tools->Depends 打开它// 然后// File->Open打开你的应用程序最好放在同一目录。使用静态库可以这么做:// Project->Setting->General->Use mfc in a static library >>如何使用静态MFC库?VC6:Setting->General->Microsoft Foundation Classes中选择Use MFC in a Static Library缺点:编译的exe较大。 建议用VC的工具Depends看看需要的dll,然后copy到目标机器上面的system32下。这些dll一般都在你的system32下。 我已经尝试用了“静态数据库的办法”,在其它机器上试了一次,可行! 谢谢abomber2 sjdev和flight_lcf我也用Depends工具查了一下,可是要把那么多DLL都找出来叶挺麻烦的啊,而且好像工具栏上的Copy没啥用啊。应该有便捷的方法把所有相关DLL文件都拷出来吧,如何? 有的安装工具,可以扫描程序所依赖的库,然后全部拷贝出来,例如InstallShield. >>不要用静态的麻烦说明原因。以及你的解决方法。谢谢 大是大的,,你用其它方法又没个的,,打包dll嘛,,也还是大容量的,,打包dll与release版本(即静态Release)的区别只是:前者是复制dll到system32下,,虽然没增加你的应用程序的 容量,,,但也还是要依赖于你拷贝的dll,,,也可以将前者称为手动 后者呢,,是打包到你的应用程序里,,增加了应用程序的容量,,但你也不用手动地 去拷贝dll了,,比前者更方便点,, > > 如何使用静态MFC库? VC6:Setting-> General-> Microsoft Foundation Classes中选择Use MFC in a Static Library 缺点:编译的exe较大。 -----------------------------带着那一堆DLL,总容量更大。 用release版本编译。vc2005是在配置管理器里面设置。 用VC的depend工具看一下你的exe文件使用了哪些库,一般情况下,使用的VC库不会很多,很多都是系统自带的,你把MFC开头的几个DLL拷贝到exe文件目录下就可以了。 楼上说的都差不多了~一般这三个会经常用到:MFC42D.dllMFCO42D.dllMSVCIRTD.dll 关于滚动条的闪烁问题 VC++操作数据库的问题 如何 在程序中 调用 Explorer 所使用的图标 怎么在一个类里修改另一个窗口类中控件的文字 寻3D电子沙盘的软硬件平台解决方案[在线] 关于单文档的一个疑问? 关于动态生成对话框和控件的问题 如何包存树视的状态 关于文件操作的问题!!! 那位英语好的朋友帮我看看!!!!80分相送啊 从SQL SERVER中读取数据,然后插入到列表控件中,当数据太多时,界面几乎处于停顿状态,怎么解决这个问题呢? 文件的读写问题
谢谢abomber2,
希望说的再具体些如何使用静态MFC库?
实在Setting--〉Link里选么?选哪些项?
"使用Depends查看都需要什么库,一次全copy过去。"您的意思是说,若想在其它电脑上正常运行我的程序就得把Project-〉Dependencies下列出的库都Copy到对方电脑,并和我的程序放在同一目录下,是这样么?
// 开始->程序->Microsoft Visual Studio 6.0->Microsoft Visual Studio 6.0 Tools->Depends 打开它
// 然后
// File->Open打开你的应用程序最好放在同一目录。使用静态库可以这么做:
// Project->Setting->General->Use mfc in a static library
VC6:Setting->General->Microsoft Foundation Classes中选择Use MFC in a Static Library
缺点:编译的exe较大。
我已经尝试用了“静态数据库的办法”,在其它机器上试了一次,可行!
谢谢abomber2 sjdev和flight_lcf
我也用Depends工具查了一下,可是要把那么多DLL都找出来叶挺麻烦的啊,而且好像工具栏上的Copy没啥用啊。应该有便捷的方法把所有相关DLL文件都拷出来吧,如何?
麻烦说明原因。以及你的解决方法。
谢谢
打包dll与release版本(即静态Release)的区别只是:前者是复制dll到system32下,,虽然没增加你的应用程序的
容量,,,但也还是要依赖于你拷贝的dll,,,也可以将前者称为手动
后者呢,,是打包到你的应用程序里,,增加了应用程序的容量,,但你也不用手动地
去拷贝dll了,,比前者更方便点,,
VC6:Setting-> General-> Microsoft Foundation Classes中选择Use MFC in a Static Library
缺点:编译的exe较大。
-----------------------------
带着那一堆DLL,总容量更大。
一般这三个会经常用到:
MFC42D.dll
MFCO42D.dll
MSVCIRTD.dll