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的更多相关文章

  1. vs2015部署---下一代VC运行时库系统:the Universal CRT

    前言 其实the Universal CRT(通用C运行时库)已经不能算是“下一代”,因为它已经在前两年伴随着Visual Studio 2015和Windows10发布.但是由于之前使用VS2015 ...

  2. TortoiseSVN 安装时出现 please install the universal crt

    解决步骤: 1.打开 https://www.microsoft.com/zh-cn/ 2.搜索 universal crt (hotfix kb2999226) 3.点击链接 4.选择适合自己的版本 ...

  3. 安装 TortoiseSVN 时提示 please install the universal crt first

    win7x64 解决办法 去https://www.microsoft.com/zh-cn/搜索 universal crt (hotfix kb2999226)点击下图链接 也就是https://s ...

  4. 安装VC++2015运行库时出现0x80240037错误

    很多时候,当我们将开发好的软件部署到用户的机器上时总会出现各种意想不到的错误,最近在一台原版Windows7系统的电脑上安装VC++运行库的时候,莫名的出现安装失败,然后错误代码为:0x8024003 ...

  5. openssl unicode编译以及VC++2015环境下的问题

    这几天需要使用openssl,前期本机上保存的目录不知道哪天整理的时候删除了,索性下载最新的自己编译一下: 在最新版的openssl(openssl-1.0.2e),编译过程中出现了很多问题,这里主要 ...

  6. 【Inno Setup】查看是否安装了VC++ 2015 Redistributeable

    可能有必要先测一下注册表的这一项是否存在 if RegValueExists(HKLM, 'SOFTWARE\WOW6432Node\Microsoft\VisualStudio\14.0\VC\Ru ...

  7. 微软的技术态度 -- 从其对于CRT的设计考虑说起(Thought on the CRT - What Microsoft Prefers)

    很多人从C语言学习过来的人都知道,在编写程序时用到的像printf这样的函数,是作为该语言标准库函数提供的,这也是C语言标准中规定的内容.因此,操作系统必须对其保持一定程度上的透明,也就是说,作为一个 ...

  8. visual studio 2015 安装MSDN全称Microsoft Developer Network 安装离线的MSDN

    MSDN: 微软向开发人员提供的一套帮助系统,其中包含大量的开发文档,技术文章和示例代码. 这里介绍了vs2015 装离线的MSDN(说明一点是,如果不行,说明你的文件有缺陷,没安装好,之前我用vs2 ...

  9. 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的错误问题 ...

随机推荐

  1. HDU 4405 Aeroplane chess(期望dp)

    Aeroplane chess Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)T ...

  2. python datetime offset-aware与offset-navie相互转换

    python datetime offset-aware与offset-navie相互转换 2016年11月13日 16:20:43 阅读数:2393 有时,我们使用python 的datetime模 ...

  3. linux下vi的复制,黏贴,删除,撤销,跳转等命令-费元星

    前言    在嵌入式linux开发中,进行需要修改一下配置文件之类的,必须使用vi,因此,熟悉 vi 的一些基本操作,有助于提高工作效率. 一,模式vi编辑器有3种模式:命令模式.输入模式.末行模式. ...

  4. 《1024伐木累》-小白篇之丽jie(结束篇)-总章节六

    往期回顾:  机缘巧合,月侠发现了老王和他心仪女孩儿的秘密,这让他倍感愤怒,一年以后,丽姐又在去往老王家的路上,这让月侠感到历史即将重新上演,他想拦住丽姐,可恰巧丽姐手机没电,失去了联系. 小序 有人 ...

  5. 斐波那契数列(Fibonacci) iOS

    斐波那契数列Fibonacci 斐波那契数列指的是这样一个数列 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610,987,1597,2 ...

  6. React + webpack 快速搭建开发环境

    因网上大多React + webpack快速搭建的运行不起来,便自行写了一个.在搭建开发环境的前需安装nodejs,npm. 新建一个工作目录,比如叫reactdome,在reactdome目录中运行 ...

  7. 玩转Linux之内存管理-free

    玩转Linux之内存管理-free free命令可以显示Linux系统中空闲的.已用的物理内存及swap内存,及被内核使用的buffer.在Linux系统监控的工具中,free命令是最经常使用的命令之 ...

  8. Python 绘制棋盘

    import turtle pen = turtle.Pen() pen.speed(10) width = 30 # 格子宽度 count = 18 # 横向纵向格子数 o = width * co ...

  9. 小程序使用Canvas画饼图

    先上效果图 -------------------------------------------------------------wxml代码开始------------------------- ...

  10. 不吹不擂,你想要的Python面试都在这里了【315+道题】+精心整理的解答

    Part01-Py基础篇(80) Part02-网络编程和并发(34) Part03-数据库和缓存(46) Part04-前端框架和其他(155) Part01-Py基础篇(80) 1.为什么学习Py ...