UCRT: VC 2015 Universal CRT, by Microsoft
https://blogs.msdn.microsoft.com/vcblog/2015/03/03/introducing-the-universal-crt/
App local UCRT DLLs: C:\Program Files (x86)\Windows Kits\10\Redist\ucrt\DLLs\x86
经Liigo本人测试,VC2015非静态链接C运行库(/MD)编译的EXE/DLL,在XP SP3系统内,除了依赖以上目录内的(几乎)所有dll以外,还额外依赖vcruntime140.dll。前面提到的这些dll,共计42个,统统放到EXE/DLL所在目录,可确保所有依赖项都不欠缺。这42个dll文件分别是(行首是字节数):
18,624 api-ms-win-core-console-l1-1-0.dll
17,600 api-ms-win-core-datetime-l1-1-0.dll
17,600 api-ms-win-core-debug-l1-1-0.dll
18,104 api-ms-win-core-errorhandling-l1-1-0.dll
21,696 api-ms-win-core-file-l1-1-0.dll
18,112 api-ms-win-core-file-l1-2-0.dll
18,112 api-ms-win-core-file-l2-1-0.dll
18,112 api-ms-win-core-handle-l1-1-0.dll
18,112 api-ms-win-core-heap-l1-1-0.dll
18,104 api-ms-win-core-interlocked-l1-1-0.dll
18,624 api-ms-win-core-libraryloader-l1-1-0.dll
20,672 api-ms-win-core-localization-l1-2-0.dll
18,624 api-ms-win-core-memory-l1-1-0.dll
18,112 api-ms-win-core-namedpipe-l1-1-0.dll
19,136 api-ms-win-core-processenvironment-l1-1-0.dll
20,160 api-ms-win-core-processthreads-l1-1-0.dll
18,624 api-ms-win-core-processthreads-l1-1-1.dll
17,600 api-ms-win-core-profile-l1-1-0.dll
17,600 api-ms-win-core-rtlsupport-l1-1-0.dll
18,112 api-ms-win-core-string-l1-1-0.dll
20,160 api-ms-win-core-synch-l1-1-0.dll
18,624 api-ms-win-core-synch-l1-2-0.dll
19,136 api-ms-win-core-sysinfo-l1-1-0.dll
18,112 api-ms-win-core-timezone-l1-1-0.dll
18,112 api-ms-win-core-util-l1-1-0.dll
19,136 api-ms-win-crt-conio-l1-1-0.dll
22,208 api-ms-win-crt-convert-l1-1-0.dll
18,624 api-ms-win-crt-environment-l1-1-0.dll
20,160 api-ms-win-crt-filesystem-l1-1-0.dll
18,624 api-ms-win-crt-heap-l1-1-0.dll
18,624 api-ms-win-crt-locale-l1-1-0.dll
28,864 api-ms-win-crt-math-l1-1-0.dll
25,792 api-ms-win-crt-multibyte-l1-1-0.dll
72,896 api-ms-win-crt-private-l1-1-0.dll
19,136 api-ms-win-crt-process-l1-1-0.dll
22,720 api-ms-win-crt-runtime-l1-1-0.dll
24,256 api-ms-win-crt-stdio-l1-1-0.dll
24,256 api-ms-win-crt-string-l1-1-0.dll
20,672 api-ms-win-crt-time-l1-1-0.dll
18,624 api-ms-win-crt-utility-l1-1-0.dll
917,184 ucrtbase.dll
85,328 vcruntime140.dll
Windows Kits 10可通过VC2015安装包安装,vcruntime140.dll文件可从安装过vc_redist.x86.exe for vc2015的系统System32目录中提取。见附件vc2015-rtl-x86.7z。64位的另外一套,但文件名称是一致的。
把这么一大堆dll放到应用程序目录也挺尴尬的(放入单独的\bin子目录可有所缓解)。微软推荐的方法是额外安装vc_redist.exe(却也是麻烦了一步)。很多开发者还是希望把单个dll运行库(如msvcrt.dll)放到应用目录的,方便部署。这个死微软佬,到了VC2015,非要把运行库拆分出几十个dll(其实合起来才几百KB [注1]),一开始甚至是拒绝提供App Local DLLs的,被抗议太多了才被迫妥协(详见上文链接)。观望VC2016(即VC15)的策略。
注1: 非压缩版1.75MB,zip压缩后911KB,7zip压缩后435KB。
VC 2015静态链接C运行库(/MT)编译的EXE/DLL,运行时不依赖任何C运行库。微软似乎并不太愿意推荐这种编译方式。
UCRT: VC 2015 Universal CRT, by Microsoft的更多相关文章
- vs2015部署---下一代VC运行时库系统:the Universal CRT
前言 其实the Universal CRT(通用C运行时库)已经不能算是“下一代”,因为它已经在前两年伴随着Visual Studio 2015和Windows10发布.但是由于之前使用VS2015 ...
- TortoiseSVN 安装时出现 please install the universal crt
解决步骤: 1.打开 https://www.microsoft.com/zh-cn/ 2.搜索 universal crt (hotfix kb2999226) 3.点击链接 4.选择适合自己的版本 ...
- 安装 TortoiseSVN 时提示 please install the universal crt first
win7x64 解决办法 去https://www.microsoft.com/zh-cn/搜索 universal crt (hotfix kb2999226)点击下图链接 也就是https://s ...
- 安装VC++2015运行库时出现0x80240037错误
很多时候,当我们将开发好的软件部署到用户的机器上时总会出现各种意想不到的错误,最近在一台原版Windows7系统的电脑上安装VC++运行库的时候,莫名的出现安装失败,然后错误代码为:0x8024003 ...
- openssl unicode编译以及VC++2015环境下的问题
这几天需要使用openssl,前期本机上保存的目录不知道哪天整理的时候删除了,索性下载最新的自己编译一下: 在最新版的openssl(openssl-1.0.2e),编译过程中出现了很多问题,这里主要 ...
- 【Inno Setup】查看是否安装了VC++ 2015 Redistributeable
可能有必要先测一下注册表的这一项是否存在 if RegValueExists(HKLM, 'SOFTWARE\WOW6432Node\Microsoft\VisualStudio\14.0\VC\Ru ...
- 微软的技术态度 -- 从其对于CRT的设计考虑说起(Thought on the CRT - What Microsoft Prefers)
很多人从C语言学习过来的人都知道,在编写程序时用到的像printf这样的函数,是作为该语言标准库函数提供的,这也是C语言标准中规定的内容.因此,操作系统必须对其保持一定程度上的透明,也就是说,作为一个 ...
- visual studio 2015 安装MSDN全称Microsoft Developer Network 安装离线的MSDN
MSDN: 微软向开发人员提供的一套帮助系统,其中包含大量的开发文档,技术文章和示例代码. 这里介绍了vs2015 装离线的MSDN(说明一点是,如果不行,说明你的文件有缺陷,没安装好,之前我用vs2 ...
- pycrypto安装出错的问题 intmax_t C:\Program Files (x86)\Windows Kits\10\include\10.0.10240.0\ucrt\inttypes.
前言: 需要安装 Microsoft Visual Studio2017 Community 或者buildtools 解决方案一(解决了python3.7上安装pycrypto-2.6.1的错误问题 ...
随机推荐
- [Link-Cut-Tree][BZOJ2002]弹飞绵羊
题面 Description 某天,Lostmonkey发明了一种超级弹力装置,为了在他的绵羊朋友面前显摆,他邀请小绵羊一起玩个游戏.游戏一开始,Lostmonkey在地上沿着一条直线摆上\(n\)个 ...
- Android+Handler+Thread 那些事儿
前言,才开始学安卓十几天,不料被线程挡住了前进的步伐,因为之前操作系统课程并没有认真听老师讲课,导致现在理解这些抽象的东西有些小困难.没关系,苦学之路,总会碰到坎坷,这里也给那些迷失在Android之 ...
- 1079: [SCOI2008]着色方案
链接 思路 首先是dp,如果直接用每个种颜色的剩余个数做状态的话,复杂度为5^15. 由于c<=5,所以用剩余数量的颜色的种类数做状态:f[a][b][c][d][e][last]表示剩余数量为 ...
- 容器技术Docker
什么是decker容器 简单理解就是将代码和部署环境一起打包的一个容器
- Android学习记录(2)—Android中数据库的常见操作
android中数据库操作是非常常见了,我们会经常用到,操作的方法也有很多种形式,这里我就把最常见的两种形式记录下来了,以备以后用到方便查看.我就不写注释和解释了,因为android数据库的操作和其它 ...
- android surfaceview 入门介绍
由于工作中需自定义控件,以前没写过. 开始时,实用view 实现了,经理说不好,担心效率低,要求每秒需要刷新10次左右. 然后,学习使用 surfaceview. 看了网上简单的Demo,找到him ...
- 23、php知识点总结基础教程--part-1
1.基本语法 PHP 脚本可放置于文档中的任何位置. PHP 脚本以 <?php 开头,以 ?> 结尾 <?php // 此处是 PHP 代码 ?> PHP 文件的默认文件扩展 ...
- python 3 直接使用reload函数报错
reload()是python2 的内置函数可以直接使用,但是python3 直接使用此函数报错,需要导入importlib 模块 from importlib import reload
- 第三方库的安装:Pangolin
Pangolin: 一款开源的OPENGL显示库,可以用来视频显示.而且开发容易. 代码我们可以从Github 进行下载:https://github.com/stevenlovegrove/Pang ...
- sublime3 Package Control和 中文安装
sublime3中文版需要使用PackageControl,所以首先需要安装PackageControl 一.PackageControl安装: 1.点击Preferences > Browse ...