VS2015在win10上编译的程序不能在Win7上运行的原因
研究了下,搞懂原理了。是VS 2015 编译的问题,因为我是Win 10 ,所以会用到win 10 的SDK ,这个SDK 依赖了Universal C Runtime ,就是API-MS-CRT-XXX.dll系列,这个玩意儿是为了让在Win 10 上用VS 2015 编译出来的东西在早期Win 上运行完美的组件,所以dependency walker依赖那里有个DLL 的转发。所以为啥我以前用VS 2012 在Win 10 开发,放Win 7上完美运行,而VS 2015 就不行,放Win 7 上就挂了。
其实VS2015 的Visual C++ Redistributable for Visual Studio 2015里面就包含了Universal C CRT。但是在非Win7 SP1上会安装失败,这是没办法的。
所以解决办法有以下:
1.换低版本的VS2013来编译项目
2.还是继续用VS2015,不过运行时库得用静态链接,也就是说,你所有第三方用的依赖库,都得重新用VS2015的运行时静态连接编译一遍,如果你用Qt,得了,Qt不提供静态库版本,得自己重新用VS2015编。
references:
https://www.zhihu.com/question/47973373
http://www.mamicode.com/info-detail-1488335.html
https://www.smartftp.com/support/kb/the-program-cant-start-because-api-ms-win-crt-runtime-l1-1-0dll-is-missing-f2702.html
https://support.microsoft.com/en-us/help/2999226/update-for-universal-c-runtime-in-windows
https://social.msdn.microsoft.com/Forums/en-US/96a1451b-ae6a-4c81-8029-dc00ab6a8d4a/the-program-cant-start-because-apimswincrtruntimel110dll-is-missing-from-your-computer?forum=vcgeneral
VS2015在win10上编译的程序不能在Win7上运行的原因的更多相关文章
- Visual Studio 2012编译的程序无法在XP下运行的解决办法【转】
最近看到一篇<Windows编程革命简史>,想到以前刚开始用VS2012的时候,编译的程序在其他人那无法运行,一查才知道是VS2012本身不支持XP.当然现在微软早已在VS2012 Upd ...
- 在VS13上编译通过的代码放在12上编译-错误:l __dtoui3 referenced in function _event_debug_map_HT_GROW
在VS13上编译通过的代码放在12上编译 遇到错误:l __dtoui3 referenced in function _event_debug_map_HT_GROW 1>------ 已启动 ...
- VS2015在win10上编译的程序在Win7上运行的方法
在win10系统上使用vs2015编译了一个32位的应用程序.在win7上报错无法启动. 下面的win7系统上是可以运行的 无法运行的win7系统: 报错: 1.应用程序无法正常启动(0xc00000 ...
- [转]VS2015编译的程序在其他机器上缺少msvcp120.dll
http://www.lai18.com/content/1159618.html 1. 今天分享一个自己在开发过程中遇到的困难. 用VS2015开发了一个windows客户端(win32项目),在自 ...
- vs2015上编译QT程序的环境搭建
下载相对应版本的QT(以QT5.7.0为例),进入网站http://download.qt.io/archive/qt/5.7/5.7.0/,下载MSVC版本QT,我的系统是64位,VS版本是2015 ...
- 一个在mac上编译c++程序的低级失误
今天在编译hadoop的pipes的wordcount例子时,总是报错不能成功. g++ -m64 -I/Users/stephen/Downloads/hadoop-0.20.2/c++/Mac_O ...
- 如何上传网站程序(文件浏览器上传网页、FileZilla上传网站程序)
问题场景: 网页制作完成后,程序需上传至虚拟主机. 注意事项: Windows系统的主机请将全部网页文件直接上传到FTP根目录,即 / . Linux系统的主机请将全部网页文件直接上传到 /htdoc ...
- Inno Setup打包的安装程序在Vista/Win7上自动提示需要管理员权限的方法
来源:http://hi.baidu.com/jingrensoft/blog/item/c34575cfae4fb926f9dc617f.html 首先,在 [Setup]段 PrivilegesR ...
- Windows 上编译 corefx 源码生成 Linux 上可用的 System.Data.SqlClient.dll
最近在排查一个奇怪的 EF Core 查询速度慢的问题,需要在 corefx 2.2.3 的 System.Data.SqlClient 源码中打点. github 上签出 corefx 的源代码,运 ...
随机推荐
- java框架之Hibernate(3)-一对多和多对多关系操作
一对多 例:一个班级可以有多个学生,而一个学生只能属于一个班级. 模型 package com.zze.bean; import java.util.HashSet; import java.util ...
- git 如何删除已经add的文件
git rm --cached "文件" 参考: https://blog.csdn.net/kiss_the_sky/article/details/77921206
- cherry-pick多个commitid时的顺序说明
有的时候,我们在一个分支上提交了几个commit,然后我们会需要提交到其他分支上,一般情况下,我们会采用的merge的方式来合并分支,另外一种方式是只需要其中几个提交时,我们会cherry-pick到 ...
- node 解析图片二维码的内容
const {readFile, readFileSync} = require('fs'); const decodeImage = require('jimp').read; const qrco ...
- selenium.common.exceptions.WebDriverException: Message: unknown Error: cannot find Chrome binary
使用Chrome浏览器时,经常会遇到以下报错:浏览器没有调用起来 selenium.common.exceptions.WebDriverException: Message: unknown Err ...
- 基于Vue的Quasar Framework 介绍 这个框架UI组件很全面
基于Vue的Quasar Framework 介绍 这个框架UI组件很全面 基于Vue的Quasar Framework 中文网http://www.quasarchs.com/ quasarfram ...
- nodejs高并发大流量的设计实现,控制并发的三种方法
nodejs高并发大流量的设计实现,控制并发的三种方法eventproxy.async.mapLimit.async.queue控制并发Node.js是建立在Google V8 JavaScript引 ...
- 移动端picker插件
项目需要,要做移动端网页,比如选择出生日期什么的.可笑weui给的控件,竟然选择后的数据不准确. 于是自己写了一个. 链接: https://pan.baidu.com/s/1qY2SSxQ 密码: ...
- java 原码反码及补码 总结
参考: http://www.cnblogs.com/zhangziqiu/archive/2011/03/30/ComputerCode.html http://blog.csdn.net/lius ...
- 破解网页右键被禁止js
按F12,点击console输入一下内容后按回车 javascript:alert(document.onselectstart = document.oncontextmenu= document. ...