让VC编译的Release版本程序在其他机器上顺利运行

链接的时候分静态链接和动态链接两种。

静态连接的话,基本上就不需要向目标机器拷贝附加的文件了,方法如下:

1、修改编译选项,将/MD或/MDd 改为 /MT或/MTd,这样就实现了对VC运行时库的静态链接,在运行时就

不再需要VC的dll了。

2、工程->属性->配置属性->常规->MFC的使用,选择“在静态库中使用mfc”。

动态连接的话,需要在目标机器上拷贝mfc所依赖的动态库。根据你使用的VC版本不同而不同:

VC6的话,一般包括mfc42.dll、msvcrt.dll、msvcp60.dll;
    VC71的话,一般需要MFC71.dll、msvcp71.dll、msvcr71.dll;
    VC2005/VC2010等版本可用直接到微软去下载对应的运行时环境安装包,安装后就可以了。

如下为部分运行环境的安装文件名称(针对32位版本windows的)。可以根据操作系统版本和VC版本进行选择下载和安装
    vcredist2005_x86.exe
    vcredist2005sp1_x86.exe
    vcredist2008_x86.exe
    vcredist2008sp1_x86.exe

VS2010的话,还是安装运行环境比较保险:vcredist2010_x86.exe或vcredist2010_x64.exe

让VC编译的Release版本程序在其他机器上顺利运行

时间: 2024-10-26 18:48:46

让VC编译的Release版本程序在其他机器上顺利运行的相关文章

避免在同一机器上同时运行同一应用程序的多个实例

通常,使用有名互斥体(named mutex).但是该方案有以下的缺陷 互斥体的名称有被其他应用程序使用的较小,潜在风险.此时,该方案不再有效,并且很难检测到bug. 该方案无法实现允许一个应用程序产生N个实例这样的一般问题. 使用Process类. 1 /// <summary> 2 /// check whether other instance of the application is running. 3 /// </summary> 4 /// <returns&

VS2013生成Release版本MFC程序在其他机器上运行

对于自己机器安装了VS开发环境,生成MFC的exe文件能够在自己机器上运行,复制到其他目标机器可能出现不能运行的情况.下面就个人经历将发布的两中情况简要说明. 1.工程属性中:配置属性-常规,MFC使用类型选择“在共享的DLL中使用MFC”:C/C++ - 代码生成-MFC的使用 选择“多线程DLL(/MD)”这种情况下,若直接将exe文件放到目标机器运行,则需要目标机器安装相应的开发平台.或者将生成exe程序的依赖dll文件复制到目标机器的程序运行目录下:若用到第三方库,也要复制相应的dll文

[转]VS2015编译的程序在其他机器上缺少msvcp120.dll

http://www.lai18.com/content/1159618.html 1. 今天分享一个自己在开发过程中遇到的困难. 用VS2015开发了一个windows客户端(win32项目),在自己的机器上运行很流畅.当你得意的把releas版本进行打包,并进行发布后,问题来了?很多人反馈运行时缺少msvcp140.dll,甚至有人在XP系统上完全不能用. 那么首先看看是如何解决的: 在工程上打开属性,选择C/C++,选择代码生成,把运行库改为"多线程(/MT)".重新编译即可.

vs2013编译的程序在其他机器上运行的环境设置

vs2013编译的程序在其他没有安装vs2013的机器上运行会有问题,网上有很多解决方法,如果你还没有解决,可以尝试以下方法,这是我在反复崩溃,烦躁测试后得到的解决方法. 1. 安装vs2013 运行包 vcredist_x64.exe 如果这个时候还是不能正常执行,请不要和我一样崩溃, 试试我的解决方法,对这个运行包进行修复 控制面板--程序--程序和功能 在程序列表里找到 vc++ 12.0.30501 选中,修复 这样就可以打开vs2013编译出来的程序了,我碰到的情况是这样解决的. ==

2016-1-1最新版本的linphone-android在mac上顺利通过,同时建立了IDEA工程

虽然参考了这个文章<MAC OS编译Android版Linphone SDK和APP>,https://www.lidaren.com/archives/1592 ,但是在实际的编译过程中还是遇到了问题,我的机器是mac osx 10.11.2.遇到的关键问题是虽然安装了grsync,同时建立了链接文件,让grsynyc充当了rsync,但是grsync的版本过低不兼容,于是直接下载rsync的源代码,编译安装rsync,安装好rsync后.再编译linphone-android一切顺利. 我

简单C程序在IA-32 CPU上运行过程的分析

本文将通过编译器生成的汇编代码分析C程序在IA-32体系PC上的运行流程 实验环境: gcc 4.8.2 C语言程序的内存结构 C代码如下 int g(int x) { return x + 1; } int f(int x) { return g(x); } int main(void) { return f(2) + 3; } 使用编译命令gcc -S -O0 -o main.s main.c -m32编译出汇编文件,如下 g: pushl %ebp movl %esp, %ebp movl

Debug与Release版本区别

Debug与Release版本区别 Debug版本就是调试版本,Visual C++ 6.0默认的就是Debug版本.在Debug版本中,可以使用单步执行.跟踪等功能,但其生成的可执行文件比较大,代码运行比较慢.Release版本就是发行版本,其运行速度较快,可执行文件较小,但在其编译条件下无法执行调试功能.     还有一点,Release版本的exe文件链接的目标是标准的MFC DLL(Use MFC in a shared or static dll).比如MFC42.DLL.这些DLL在

release版本和debug版本

程序一般分为Debug版本和Release版本,Debug版本用于内部调试,Release版本发行给用户使用 Release和Debug有什么不同 Release版称为发行版,Debug版称为调试版. Debug中可以单步执行.跟踪等功能,但生成的可执行文件比较大,代码运行速度较慢.Release版运行速度较快,可执行文件较小,但在其编译条件下无法执行调试功能. Release的exe文件链接的是标准的MFC DLL(Use MFC in a shared or static dll).这些DL

详解cocos2dx 3.0的release版本在android平台的签名过程

当您的游戏准备发布前,需要编译成为release版本,命令中需要增加 -m release,编译命令如下: cocos compile -p android -m release 在编译结束后,生成xxx_release_unsigned.apk,此时会提示进行签名,需要输入.keystore的路径. .keystore的生成方法: 使用keytool,命令如下: keytool -genkey -v -keystore my-release-key.keystore -alias alias_