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. laravel5.5http会话机制

    1.配置文件 config/session.php 大多数是用file驱动,将session保存在storage/framework/sessions,可以考虑使用redis或者memcached 驱 ...

  2. 使用闭包和lambda解决问题与常规方式解决问题的对比。

    先来描述一下问题吧,游戏中的物品原来只有一个属性加成:攻击,防御,获得经验加成,金币加成,等等.现在要增加一个属性,这个属性可以为之前的属性之一. 这个属性加成涉及到类里的三个属性,value,typ ...

  3. .Net导出Word和Excel

    using System; using System.Collections.Generic; using System.Linq; using System.Web; public class Ex ...

  4. 恢复误删除表黑科技之relay log大法(续)

      Preface       I've stuck twice in my previous experiments in backing up dropped tables.I am still ...

  5. XSS注入常用语句积累

    <script>alert('hello,gaga!');</script> //经典语句,哈哈! >"'><img src="javas ...

  6. .swp文件的恢复

    .swp 编辑文件的过程中会出现这个隐藏文件. 文件如果正常保存,.swp就会自动删除.如果不正常退出,比如关机,.swp就会留下来. linux下: ls -all 可以查看隐藏文件 命令: vi ...

  7. 【Python】Python PYQT4 GUI编程与exe打包

    本篇文章承接http://www.cnblogs.com/zhang-zhi/p/7646923.html#3807385,上篇文章描述了对文本文件的简单处理,本章节结合PYQT4实现该功能的GUI图 ...

  8. 台州学院we are without brain 训练 后缀数组

    sa[i]表示排名为 i 的后缀的第一个字符在原串中的位置 rank[i]表示按照从小到大排名  以i为下标开始的后缀的排名 height[i]表示排名为 i 和排名为 i+1的后缀的最长公共前缀的长 ...

  9. maven学习(十七)——在eclipse中导入外部maven项目

    外部maven项目,导入Eclipse中进行开发 操作步骤如下所示:

  10. 细说php2[正则表达式学习笔记]

    <细说php>这本书应该是每个php程序员入门的必读书籍,里面讲的很多知识都很系统和详细,看了正则这部分,并练习了里面的案例,发现自己已经会了很多.... header('Content- ...