用VS2010编写的C++程序,在其他电脑上无法运行,提示缺少mfc100.dll的解决办法
问题:
在自己电脑上用VS2010编写的VC++程序(使用MFC库),不能在其他电脑上运行。双击提示:
“无法启动此程序,因为计算机中丢失mfc100.dll 尝试重新安装该程序以解决此问题。”
解决方案:
方案一 采用静态编译
使用VS2010编译的程序在windowsxp中运行时,经常会出现找不到相关的DLL文件,我们可以使用静态编译的方法把这些运行依赖文件打包到*.exe中来,以减少对环境的依赖。
一般可以配置以下两项:
- 项目 -< **属性 -< 配置属性-< 常规 -< MFC的使用:在静态库中使用MFC。
- 项目 -< **属性 -< 配置属性-< C/C++ -< 代码生成-< 运行库 :多线程(/MT)。
方案二 将mfc100.dll和应用程序一起打包发布,并在该包中加入安装控件的说明文件
附:mfc100.dll控件常规安装方法(说明文件):
- 将下载来的mfc100.dll拷贝到指定目录(一般是system系统目录或放到软件同级目录里面),或者重新添加文件引用。若您的系统是WindowsXP/WIN7/Vista系统(32位),请将mfc100.dll复制到C:\Windows\System32目录下;若您的系统是64位,请将文件复制到C:\Windows\SysWOW64目录。
- 点击 开始 -< 运行,输入"regsvr32mfc100.dll",回车即可解决。
或者将下面的代码保存为“注册.bat”(方法:新建.txt文档,打开文档输入代码后保存关闭,更改文件名及扩展名为“注册.bat”),放到dll文件同级目录(只要在同一个文件夹里面有这两个文件即可),双击注册.bat,就会自动完成mfc100.dll注册(win98不支持)。
下面是32系统的注册bat文件(64位的请将下面的system32替换为SysWOW64即可。)
代码如下:
@echo 开始注册
copy mfc100.dll %windir%\system32\
regsvr32 %windir%\system32\mfc100.dll /s
@echo mfc100.dll注册成功
@pause
方案三 将程序和vcredist_x86.exe一起打包发布(或提示用户下载并安装vcredist_x86.exe)
下载并安装vcredist_x86.exe即可。
vcredist_x86.exe下载地址:
http://www.microsoft.com/zh-cn/download/details.aspx?id=8328
用VS2010编写的C++程序,在其他电脑上无法运行,提示缺少mfc100.dll的解决办法的更多相关文章
- 用VS2010编写的C++程序,在其他电脑上无法运行的问题
问题:在自己电脑上用VS2010编写的VC++程序(使用MFC库),不能在其他电脑上运行.双击提示: “无法启动此程序,因为计算机中丢失mfc100u.dll 尝试重新安装该程序以解决此问题. 解决方 ...
- java程序怎么在一个电脑上只启动一次,只开一个进程
目录 <linux文件锁flock> <NIO文件锁FileLock> <java程序怎么在一个电脑上只启动一次,只开一个进程> 方案1: 单进程程序可以用端口绑定 ...
- Dev C++编写C/C++程序 出现[Error] ld returned 1 exit status报错分析及解决
debug系列第一弹,不知道大家写程序的时候是不是都遇到过如题的报错. 我本人是经常遇到这行熟悉的令人不知所措的报错,可能是我太笨了 有时候百度无果也差不到原因,那就汇总一下目前我遇到的情况吧--持续 ...
- VS2010生成的文件在别的机器上运行提示“丢失MSVCR100D.dll”<转>
用vs2010编写的程序经常会发生的一个问题.在自己的机器上运行的好好的,但是在别的机器上就会发生没有找到MSVCR100D.dll.这是 个很头疼的问题.对于一些代码量几百行的小程序,我不可能要求其 ...
- [转].NET程序在windows操作系统上独立运行的技术要点
发现一个不错的网站,转载一篇文章方便查看 转自 http://www.linuxdot.net/bbsfile-3354 ===================================== ...
- XP下 无法定位程序输入点WSAPoll于动态链接库ws2_32.dll 的解决办法
最近在给手机启用黑阈服务的时候出现了无法定位程序输入点WSAPoll于动态链接库ws2_32.dll这个错误,上网查了一下是因为SDK Platform Tools版本过高不能兼容windows xp ...
- UWP 程序抛出异常时总是跳到“global::System.Diagnostics.Debugger.Break();”的解决办法
调试 C# 程序时,如果遇到异常,VS 会中断,指出导致异常的语句.但是最近调试 UWP 程序时,发现总是在“global::System.Diagnostics.Debugger.Break();” ...
- 【QT开发】QT在windows下的exe应用程序如何在别人的电脑上直接运行
当你利用QT编译了一个可执行程序,需要将这个可执行程序拷贝到别人的电脑上运行,这个时候除了这个可执行程序外,还需要支持的库才可用运行.一般来说通过下面的方法可以实现. 首先,需要看你用的是什 ...
- 用vs2010 编写C语言程序,VS2010 C++编译报错LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏
编译mongodb-src-r2.2.2出现以下问题 LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏 这个是由于日志文件引起的,可以将 项目\ ...
随机推荐
- UVa 872 - Ordering 输出全拓扑排序
本题要求输出所有拓扑排序的序列. 还好本题的数据量不是非常大.限制在26个大写英文字母,故此能够使用递归法输出. 这个递归输出所有解在Leetcode非常多这种题目的,不小心的话,还是非常难调试的. ...
- 自定义toast功能
http://download.csdn.net/detail/caryt/8105031
- 管理http服务的脚本
因为老是须要又一次安装系统,重一次都要又一次设置http服务的启动脚本.麻烦,所以这一次就把脚本备份出来. httpd for Ubuntu system: nginx + php-fpm #! /b ...
- redis持久化和常见故障
https://segmentfault.com/a/1190000004135982 redis 主从复制 Redis主从复制的原理 当建立主从关系时,slave配置slaveof <mast ...
- c语言中的 %u 什么意思啊?
%d 有符号10进制整数 %i 有符号10进制整数 %o 无符号8进制整数 %u 无符号10进制整数 %x 无符号的16进制数字,并以小写abcdef表示%X 无符号的16进制数字,并以大写ABCDE ...
- android打包签名介绍
Keytool 是一个有效的安全钥匙和证书的管理工具. Java 中的 keytool.exe (位于 JDK\Bin 目录下)可以用来创建数字证书,所有的数字证书是以一条一条(采用别名区别)的形式存 ...
- 文件权限和目录权限详解(rwx)
[文件] r:可读,可以使用cat命令查看文件内容: w:可写,可以编辑或删除文件: x:可执行,可以当作命令提交给内核 [目录] r:可以对此目录执行ls,列出内部所有文件 w:可以在此目录创建文件 ...
- X86(32位)与X64(64位)有什么区别,如何选择对应的操作系统和应用程序?
X86就是我们一般用的32位的系统,指针长度为32位(386起):X64就是64位的系统,指针长度为64位. 选择硬件对应的软件,建议通过以下三条考虑:1.64位操作系统相对32位操作系统理论上性能会 ...
- gitlab 配置 ssh && ubuntu
1,在你的电脑上生成密钥ssh-keygen -t rsa -C "youeamil@explode.com" 2,在 ubuntu系统中 ~/.ssh目录中生成了两个文件id_r ...
- SQL SERVER将某一列字段中的某个值替换为其他的值 分类: MSSQL 2014-11-05 13:11 67人阅读 评论(0) 收藏
SQL SERVER将某一列字段中的某个值替换为其他的值 UPDATE 表名 SET 列名 = REPLACE(列名 ,'贷','袋') SQL SERVER"函数 replace 的参数 ...