VC-LTL 4.1.1-Beta3

This is a prerelease version of VC-LTL.
There is a newer version of this package available.
See the version list below for details.

Requires NuGet 2.5 or higher.

dotnet add package VC-LTL --version 4.1.1-Beta3                
NuGet\Install-Package VC-LTL -Version 4.1.1-Beta3                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="VC-LTL" Version="4.1.1-Beta3" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add VC-LTL --version 4.1.1-Beta3                
#r "nuget: VC-LTL, 4.1.1-Beta3"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install VC-LTL as a Cake Addin
#addin nuget:?package=VC-LTL&version=4.1.1-Beta3&prerelease

// Install VC-LTL as a Cake Tool
#tool nuget:?package=VC-LTL&version=4.1.1-Beta3&prerelease                

VC-LTL——编译精巧的程序原来如此简单

Logo<br/> 我愿化成一座做石桥,经受五百年的风吹,五百年的日晒,五百年的雨打,只求她从桥上走过!

1. 关于VC-LTL

VC-LTL是一个基于微软VC修改的开源运行时,有效减少应用程序体积并摆脱微软运行时DLL,比如msvcr120.dll、api-ms-win-crt-time-l1-1-0.dll等依赖。

VC-LTL最初是Dism++专用运行时。2017年3月6号从Dism++源代码中分离,并正式对外开源,为社区贡献自己的微薄之力。

在大型项目中往往有众多模块,如果都采用静态编译那么造成的空间浪费先不说,最后也会因为Fls上限导致程序无法正常运行。

而VC-LTL能让你的项目如同系统文件一样共享系统内置msvcrt.dll,有效的解决Fls上限以及运行时部署问题,同时大大缩减程序体积,可以说一箭三雕!

所有人都可以无条件、免费使用,包括用于商业环境。当然如果大家在自己的程序说明文件中声明使用了VC-LTL那就更好了。

1.1. 原理

使用VC-LTL后可以将程序动态链接到系统自带的msvcrt.dll中,来减少程序体积。目前使用CRT以及STL的工程一般都可以使用。但是MFC工程不能使用,因为MFC类库太复杂了,尚未适配。

使用VC-LTL,C++程序体积大约缩减30%,而纯C程序则大约缩减50%。

1.2. 亮点

  • 晚起的鸟儿也有虫虫吃,优雅的引用方式,仅添加一个属性表就能享受极致的体积体验。
  • 无缝使用最新C/C++库以及最新编译器,尽情的使用最新规范。神马异常流防护(guard:cf)、静态对象线程安全初始化(threadSafeInit)……统统放马过来吧!!
  • 拥有比微软原版更好的兼容性,即使想兼容Windows XP RTM也可以安心的对新编译器说“Yes”。
  • 完全的开放代码,广泛的接受用户意见,希望大家能踊跃的 pull requests,为VC-LTL添砖加瓦。

让我们一起跟VS 2008说拜拜!

2. VC-LTL兼容性

2.1. 支持的IDE

  • Visual Studio 2015(包含Clang with Microsoft CodeGen、Clang 3.7 with Microsoft CodeGen、Clang-LLVM)
  • Visual Studio 2017(包含Clang with Microsoft CodeGen、Clang-LLVM)
  • Visual Studio 2019(包含Clang-LLVM)

2.3. 支持的操作系统

操作系统 x86 x64 arm arm64
Windows XP、Windows Server 2003 - -
Windows Vista、Windows Server 2008 - -
Windows 7、Windows Server 2008 R2 - -
Windows 8、Windows Server 2012、Windows RT -
Windows 8.1、Windows Server 2012 R2、Windows RT 8.1 -
Windows 10、Windows Server 2016、Windows Server 2019

采用VC-LTL编译后的程序能兼容Windows XP RTM以上所有操作系统,无需安装任何SP补丁包。

Product Compatible and additional computed target framework versions.
native native is compatible. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
5.1.1 8,352 8/11/2024
5.1.1-Beta4 206 8/4/2024
5.1.1-Beta3 241 7/14/2024
5.1.1-Beta2 3,444 5/30/2024
5.1.1-Beta1 443 5/25/2024
5.0.10-Beta2 1,547 5/4/2024
5.0.10-Beta1 149 5/2/2024
5.0.9 16,080 10/1/2023
5.0.8 3,521 6/22/2023
5.0.8-Beta2 867 6/1/2023
5.0.8-Beta1 857 5/10/2023
5.0.7 1,249 5/7/2023
5.0.6 768 4/30/2023
5.0.6-Beta5 1,097 4/5/2023
5.0.6-Beta4 1,189 3/18/2023
5.0.6-Beta3 838 1/25/2023
5.0.6-Beta2 758 11/5/2022
5.0.6-Beta1 2,972 7/17/2022
5.0.5 32,721 5/15/2022
5.0.5-Beta1 653 3/19/2022
5.0.4 6,142 3/13/2022
5.0.4-Beta3 1,581 1/17/2022
5.0.4-Beta2 608 12/29/2021
5.0.4-Beta1 4,073 12/16/2021
5.0.3 902 12/8/2021
5.0.3-Beta1 1,596 11/2/2021
5.0.2-Beta1 1,760 10/9/2021
5.0.1 1,032 9/19/2021
5.0.1-Beta6 769 9/5/2021
5.0.1-Beta5 278 8/30/2021
5.0.1-Beta4 1,133 8/26/2021
4.1.3 5,289 7/12/2021
4.1.3-Beta2 418 6/18/2021
4.1.3-Beta1 1,314 6/3/2021
4.1.2 4,861 6/3/2021
4.1.2-Beta3 513 5/27/2021
4.1.2-Beta2 358 5/24/2021
4.1.2-Beta1 393 5/11/2021
4.1.1 5,444 2/7/2021
4.1.1-Beta7 527 12/18/2020
4.1.1-Beta5 306 11/5/2020
4.1.1-Beta4 348 9/26/2020
4.1.1-Beta3 388 9/1/2020
4.1.0.4 2,908 7/25/2020
4.0.3.8 2,472 1/17/2020

* 解决[Bug 62](https://github.com/Chuyu-Team/VC-LTL/issues/62),修复微软原版多个线程多个模块同时exit可能发生死锁问题。
     * 解决Bug,14.16.27023工具集__scrt_get_dyn_tls_dtor_callback缺失问题。
     
     > 温馨提示:VC-LTL 4.1 与 4.0版本在STL stream支持中存在ABI不兼容问题,对应静态库请重新编译!