VC-LTL5 icon indicating copy to clipboard operation
VC-LTL5 copied to clipboard

Shared to msvcrt.dll or ucrtbase.dll and optimize the C/C++ application file size.

Results 10 VC-LTL5 issues
Sort by recently updated
recently updated
newest added

Perhaps we can find a way to run [,NET but natively compiled down version](https://docs.microsoft.com/en-us/dotnet/core/deploying/native-aot). Because if Rust can be dealt with, why not .NET, or even Golang?

类型:新功能/建议(enhancement)
影响范围:低

`/guard:ehcont` 选项介绍:https://docs.microsoft.com/en-us/cpp/build/reference/guard-enable-eh-continuation-metadata?view=msvc-170 前段日子,有人为 NanaZip 贡献了 CET 和 CFG 的支持,在验证的时候发现 VC-LTL 的 UCRT 实现未适配 `/guard:ehcont` 编译器选项支持 毛利

类型:问题(Bug)
处置:等待验证
影响范围:低

Could you please add ARM64EC support

类型:新功能/建议(enhancement)
处置:正在讨论(Review)
影响范围:低

ASAN 即 Address Sanitizer,详细介绍可参阅 https://docs.microsoft.com/en-us/cpp/sanitizers/asan 这个功能对于一些用户来说还是很有用的,该问题由友人 @FASTSHIFT 发现在使用了 VC-LTL 的 LVGL Windows 仿真器项目无法使用 ASAN 后,我进行粗略分析后做出的反馈 注:由于 Release 模式下可以正常使用 ASAN,于是猜测和 VC-LTL 的 Debug Heap 实现有关 附报错截图一份 ![image](https://user-images.githubusercontent.com/10867563/146859001-737ab40a-84b2-4a4d-a03a-28f665ad043d.png) 复现参考环境 - MSVC 2022...

类型:问题(Bug)
处置:正在讨论
影响范围:低

实际使用下来,我发现链接到msvcrt的好处在编写短小的命令行程序的时候很有效,这时候因为软件的体积本身就比较小,静态链接msvc运行库增加的体积就特别明显。 但是一旦使用到比较庞大的软件上,而且不带一堆第三方动态库,而是全部静态链接到一起,体积也只能减少200到300KB,软件自身的体量就占大头了。 所以我认为VC-LTL适用的场景应该是: * 携带大量dll形式的第三方库的软件,如果每一个dll都静态链接msvc运行库上去,那么体积增长会十分可观,这时候全部使用VC-LTL,可以获得最大的收益 * 短小的命令行应用程序,静态链接msvc运行库带来的体积膨胀显著

https://en.cppreference.com/w/c/thread/thrd_create 微软默认会链接 VCRUNTIME140_THREADS.dll VC-LTL5 里没有实现: error LNK2019: 无法解析的外部符号 thrd_create,函数 main 中引用了该符号 error LNK2019: 无法解析的外部符号 thrd_join,函数 main 中引用了该符号 SDK 版本: 10.0.22621.0 VC 版本: 14.40.33521 这是微软的 threads.h 头文件 ```c // Copyright (c)...

VS2022项目,开启VC-LTL后出现该问题。 ![QQ截图20231225163028](https://github.com/Chuyu-Team/VC-LTL5/assets/32062239/107058d9-c7d4-45da-8561-e1e44231b9ad) 代码没有直接引用std::_Tree_unchecked_const_iterator,不知道从哪里引入的该代码。 甚至pdb文件中也没有该function的符号,只能反编译看个大概。 ![QQ截图20231225163319](https://github.com/Chuyu-Team/VC-LTL5/assets/32062239/bb2b5575-b38c-4a97-a43b-d83c4677e4bd)

类型:问题(Bug)
处置:正在讨论

## 背景 很多用户或许会疑问,如果编译时选择5.1兼容,但是使用MD编译。这时程序会怎么样,真的会兼容XP吗?需要额外依赖什么库? 从用户角度说使用 `MD/MDd`,额外依赖某些动态库是合理的。从技术角度做到不依赖动态库也不是特别容易。 这看起来没有问题,但是使用微软的动态库无法提供XP兼容,这违背用户使用VC-LTL的初衷。 因此我们希望重新调整`MD/MDd`下的使用体验。初步认为需要实现2点: 1. 使用`MD/MDd`后将额外依赖某些动态库。用户需要为程序准备运行库后才能正常运行。 2. 使用`MD/MDd`后任然可以兼容XP等系统,符合用户的预期。 ## 技术方案构想 * 使用 `MD/MDd`直接依赖ucrtbase.dll(就是统一废除MSVCRT.dll) - 这样 既将兼容标准对其微软,同时也完全兼容微软的DLL,大家可以在非必要的场景直接使用微软的。 * 我们提供ucrtbase.dll那一套DLL统一支持到Windows XP RTM - 避免用户的尴尬,发现编译后任然不支持XP等老系统这个体验是糟糕的。 - 如何编译可以借鉴:https://github.com/sonyps5201314/msvcr14x * 与微软原版相比,我们的不依赖API Sets...

类型:新功能/建议(enhancement)
处置:正在讨论(Review)
影响范围:低

## 背景 rust crates包最大只能为10MB。否则上传就会失败。为了成功上传,为大家提供更好的服务,想对crates包做拆分处理,以避免这个上限。 > 目前已经通过删除create包的PDB文件,临时规避了10MB上限问题。 ## 初步设想 根据平台,比如x86、x64……拆分为不同的子包。然后由父统一控制。结构大致如下: ```mermaid flowchart TD; VC-LTL-->VC-LTL.x86 VC-LTL-->VC-LTL.x64 VC-LTL-->VC-LTL.arm VC-LTL-->VC-LTL.arm64 ```

类型:新功能/建议(enhancement)
处置:正在讨论(Review)
影响范围:低