用VS2010编写的C++程序,在其他电脑上无法运行的问题
问题:
在自己电脑上用VS2010编写的VC++程序(使用MFC库),不能在其他电脑上运行。双击提示:
“无法启动此程序,因为计算机中丢失mfc100u.dll 尝试重新安装该程序以解决此问题。
解决方案:
方案1.采用静态编译
使用VS2010编译的程序在windows xp中运行时,经常会出现找不到相关的DLL文件,我们可以使用静态编译的方法把这些运行依赖文件打包到*.exe中来,以减少对环境的依赖。
一般可以配置以下两项:
(1)项目 -> **属性 -> 配置属性 -> 常规 -> MFC的使用 :在静态库中使用MFC。
(2)项目 -> **属性 -> 配置属性 -> C/C++ -> 代码生成 -> 运行库 :多线程(/MT)。
方案2.将mfc100.dll和应用程序一起打包发布,并在该包中加入安装控件的说明文件
附:mfc100.dll控件常规安装方法(说明文件):
①将下载来的mfc100.dll拷贝到指定目录(一般是system系统目录或放到软件同级目录里面),或者重新添加文件引用。 若您的系统是Windows XP/WIN7/Vista系统(32位),请将mfc100.dll复制到C:\Windows\System32目录下;若您的系统是64位,请将文件复制到C:\Windows\SysWOW64目录。
②点击 开始 -> 运行,输入"regsvr32 mfc100.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
方案3.将程序和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++程序,在其他电脑上无法运行的问题的更多相关文章
- 用VS2010编写的C++程序,在其他电脑上无法运行,提示缺少mfc100.dll的解决办法
问题: 在自己电脑上用VS2010编写的VC++程序(使用MFC库),不能在其他电脑上运行.双击提示: "无法启动此程序,因为计算机中丢失mfc100.dll 尝试重新安装该程序以解决此问题 ...
- java程序怎么在一个电脑上只启动一次,只开一个进程
目录 <linux文件锁flock> <NIO文件锁FileLock> <java程序怎么在一个电脑上只启动一次,只开一个进程> 方案1: 单进程程序可以用端口绑定 ...
- [转].NET程序在windows操作系统上独立运行的技术要点
发现一个不错的网站,转载一篇文章方便查看 转自 http://www.linuxdot.net/bbsfile-3354 ===================================== ...
- 【QT开发】QT在windows下的exe应用程序如何在别人的电脑上直接运行
当你利用QT编译了一个可执行程序,需要将这个可执行程序拷贝到别人的电脑上运行,这个时候除了这个可执行程序外,还需要支持的库才可用运行.一般来说通过下面的方法可以实现. 首先,需要看你用的是什 ...
- 用vs2010 编写C语言程序,VS2010 C++编译报错LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏
编译mongodb-src-r2.2.2出现以下问题 LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏 这个是由于日志文件引起的,可以将 项目\ ...
- 关于使用dotnetbar开发winform程序在用户电脑上部署时问题
1.首先要安装两个软件
- Winform程序在XP系统上双击运行无反应解决方法
右键程序,打开属性栏,在兼容性选项里以兼容模式运行该程序即可解决.
- 问题-[Delphi7]程序在WIN7电脑上的日期错误处理
问题现象:我想大家都遇到过在XP上没有问题的日期格式,到了WIN7之后就不行了. 问题原因:因为在WIN7中增加了新的日期格式,但是老的DELPHI未处理(如果我说错了,希望高人指点). 问题处理: ...
- pyinstaller打包好的.exe程序在别的电脑上运行出错
打开.exe提示: Failed to execute script... 查看命令行错误提示为: 总的来说呢,就是有的版本pyqt5库对系统变量的加载存在bug,具体原因只有官方才能解释了,咱也没法 ...
随机推荐
- Python元组,列表,字典,集合
1.元组 元组是有序的,只有index和count两种方法,一看到元组,就提醒是不可更改的 names = ('wll', 'ly', 'jxx', 'syq') (1)index方法 print(n ...
- 笔记-Python-language reference-5.the import system
笔记-Python-language reference-5.the import system 前言 经常用到import,module,对其中的机制及原理有一定的了解,但没有将各种信息前后连通起来 ...
- impala presto SparkSql性能测试对比
目标是为测试impala presto SparkSql谁的性能更佳,以下结果底层查询的都是普通textfile snappy压缩后数据,规模为15台机器,若以orcfile.parquet速度能 ...
- Oozie 安装及 examples app 的使用
参考文档 一.Building OOzie 特别注意的是修改Pom.xml文件中的版本与本机中安装的版本相同 二. install Oozie 1.为 hadoop 添加 Oozie 的代理用户,添加 ...
- Python的函数一
一.函数的定义 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段.函数能提高应用的模块性,和代码的重复利用率.Python提供了许多内建函数,比如print().可以自己创建函数,这被 ...
- CC3200模块的内存地址划分和bootloader,启动流程(二)
1. 首先启动内部ROM固化的BOOT,然后这个ROM启动需要使用内存空间0X2000 0000 --- 0X2000 4000共16K的空间.一级BOOT的作用是串口升级和驱动库. 2. 然后是二级 ...
- QBASIC教程
Qbasic 程序设计入门 BASIC(Beginner’s All-purpose Symbolic Instruction Code 的缩写,意为初学者通用符号指令代码)语言是在1964年由美国的 ...
- Swift 与众不同的地方
Swift 与众不同的地方 switch(元组) 特点 其他语言中的switch语句只能比较离散的整形数据(字符可以转换成整数) 但是swift中可以比较整数.浮点数.字符.字符串.和元组数据类型,而 ...
- Python 两种方式实现斐波那契数列
斐波那契数列指的是这样一个数列 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610,987,1597,2584,4181,6765,10946 ...
- ADB连接手机遇到的问题:list of devices attached
今天工作时想尝试一下使用ADB无线连接手机,结果遇到了下面这样的问题,浪费了几十分钟的时间,挺闹心的,因此想分享出来... 首先 第一步:使用USB数据线连接手机,手机弹出选项时,选择仅充电,然后wi ...