win10下vs2015编译的程序如何运行在win7等系统(无需安装Redistributable)
最近新写的程序要做beta测试,在做绿色版(免安装版)时遇到了问题,vs2015做的项目本以为像之前的vs版本一样把msvcrXXX.dll还有另外几个运行时库都放到exe旁边即可,然并卵。。。,在win7的测试机上还会提示找不到这个dll:api-ms-win-crt-runtime-l1-1-0.dll,如下图

继续找到这个dll拷到exe旁,坑爹的一幕放生了,竟然提示那个dll有问题——无法定位程序输入点ucrtbase.terminate。。。

难道是版本不对,我机器上是有几个不同大小的api-ms-win-crt-runtime-l1-1-0.dll,都试了下,还是不行,这就没处说理了。。。然后谷歌了下,都是说要装vs2015 Redistributable或者KB2999226的更新(Win10通用CRT,不是win10的,是其他win7等系统的更新用来支持通用crt的程序),试着装了下Redistributable包竟然装到一半报未定义的错误(0x80240017)。。。O(≧口≦)O,而且这也背离了绿色版的初衷,继续研究吧。
后来注意到api-ms-win-crt-runtime-l1-1-0.dll同目录下有一堆api-xxx的dll,可能都是有联系的,索性整个目录所有dll全都拷到exe旁了,竟然可以启动了 O(∩_∩)O
注意:我用的是win10 sdk中的dll,具体目录在C:\Program Files (x86)\Windows Kits\10\Redist\ucrt\DLLs\x86 ,不同机器目录可能略有不同。另外我的程序是32位,所以是x86文件夹的,如果是64位等可以用Windows Kits\10\Redist\ucrt\DLLs下的对应文件夹的dll。
仔细一看拷过去的dll中还有一个叫ucrtbase.dll,难道和入口点那个报错有关系,删了后确实又报第二个截图的错误了。。。好坑爹呀,为什么别人都是报丢失dll,就你是报找不到入口点呢(而且还是另一个已存在的dll),害得我纠结了这么久,不管怎么样终于找到制作vs2015程序绿色版的正确姿势了——除了以往的msvc运行时库的多个dll外,还要把win10通用crt相关的多个dll都放到exe旁才可以。
后记:用procexp又看了下绿色版程序在win10机器上加载dll的列表,竟然没有api-xxx那堆dll,一个都没有,看来那些dll确实只是用于其他系统运行win10通用crt程序的,win10本身因为做了原生支持所以就不需要加载那些dll了。
win10下vs2015编译的程序如何运行在win7等系统(无需安装Redistributable)的更多相关文章
- win10下vs2015配置Opencv3.1.0过程详解
下载安装Opencv3.1.0 下载Opencv3.1.0,进入官网,点击opencv for windows即可下载. 点击运行下载好的文件.实际上,opencv的安装程序就是解压缩文件,个人因为 ...
- win10下vs2015配置Opencv3.1.0过程详解(转)
下载安装Opencv3.1.0 下载Opencv3.1.0,进入官网,点击opencv for windows即可下载. 点击运行下载好的文件.实际上,opencv的安装程序就是解压缩文件,个人因为 ...
- win10下VS2015局域网调试配置
一.前言 换win10页挺久了一直没有使用 IISExpress 的局域网功能,今天一使用才发现 win10 比起 win7 下配置多了许多坑. 二.配置步骤 首先我们先来拿到本机 ip 地址 打开命 ...
- 4、树莓派的中文:安装ftp,安装gcc,安装qt,编译qt程序,运行qt界面程序
本博文仅作本人操作过程的记录,留作备忘.自强不息 QQ1222698 1.安装FTP:sudo apt-get install vsftpd 2.配置FTP,修改,/etc/vsftpd.conf # ...
- win10下通过编译源码方式在chrome中成功安装react-devtools开发工具插件
win10下通过编译源码方式在chrome中成功安装react-devtools开发工具插件 1.去git上下载react-devtools文件到本地,https://github.com/fac ...
- windows下多个python版本共存,如何在Windows7系统上安装最新的64位Python3.6.2
windows下多个python版本共存,如何在Windows7系统上安装最新的64位Python3.6.2 1.官网下载python3.6.2https://www.python.org/ftp/p ...
- win10下vs2015创建asp,net core项目并运行在ubuntu14.04下
上文说了.net core程序在win10与ubuntu下运行,用的是示例程序(https://github.com/aspnet/cli-samples),今天用vs2015 构建asp.net c ...
- Windows下 VS2015编译RocksDB
VS2015编译RocksDB RocksDB 是一个来自 facebook 的可嵌入式的支持持久化的 key-value 存储系统,也可作为 C/S 模式下的存储数据库,但主要目的还是嵌入式.Roc ...
- Windows下 VS2015编译levelDB(nmake)
VS2015编译levelDB Leveldb是一个google实现的非常高效的kv数据库,非常适合嵌入到程序中.如果有简单的key-value数据库需求,而又想使用一个数据库服务的话,levelDB ...
随机推荐
- 小程序map组件默认层级最高,并且不能设置的解决方案
map组件默认在最上面,若要设置像ofo那样的按钮有两个方法,一是用控件设置,控件就是controls属性,控件只能显示图片,不能显示文字之类的.二是用cover-view组件,这个组件就是悬浮在一些 ...
- react 中的return 什么时候用小括号,什么时候用大括号啊
return( <div>....</div> ) return( <Component/> ) return{...} 1:html 2:react 组件 3:j ...
- 关于绕过域名(ip)校验的一些小知识
这篇文章最开始只是想写一个关于绕过referer的方法,写着写着发现和ssrf以及url跳转的一些手法类似,于是把这两种也加上了 对referer做校验一般是对csrf进行防范的手段之一,但是很多时候 ...
- tomcat安装与项目部署
1.tomcat依赖:jdk jre,环境变量配置 java_home jre_home 2.tomcat安装: 下载:http://tomcat.apache.org/ download ...
- CentOS 7 源码编译MariaDB
下载源码包 安装 SCL devtoolset-7 SCL(Software Collections)可以让你在同一个操作系统上安装和使用多个版本的软件,而不会影响整个系统的安装包.SCL为社区的以 ...
- AARRR海盗模型简介
整理下AARRR模型的概念.实际应用场景等问题,初步感觉这个模型主要应用在APP应用分析中. 1.什么是AARRR模型 AARRR是Acquisition.Activation.Retention.R ...
- Linux系统命令 3
1.vmstat命令监控系统资源[root@localhost ~]#vmstat [刷新延时 刷新次数] 例如:[root@localhost proc]#vmstat 1 3 2.dmesg开机时 ...
- Tensorflow serving with Kubernetes
1.Build docker image 由于自己build镜像总是遇到问题,此处暂时借用dockerhub上的一个镜像 docker.io/mochin/tensorflow-serving 将此镜 ...
- Consul 常用指令
Consul 常用指令 # 通告地址 -advertise # 集群节点之间通信地址 -bind # 设置服务器为bootstrap模式.在一个dc中只有一个server处于bootstrap模式.一 ...
- 解决eclipse修改后台代码ctrl+s总是【自动重启服务器】问题
每次修改后台代码保存总是自启动服务很是耗时,以下设置可以解决你的烦恼: 双击你要设置的项目: 点击ok,最后ctrl+s一下就搞定了. 这时候你随便修改后台代码随便ctrl+s都不会重新启动服务器.b ...