OneWheel
2021-06-23 11:42
采纳率: 100%
浏览 272

api-ms-win系列dll是什么,干嘛用的

我用vs2019写程序时,编译出的exe要使用的api会链接到api-ms-win开头的dll上,比如api-ms-win-core-file-l2-1-0.dll而不是之前的kernel32,user32(先叫它们系统dll吧)

我很好奇这些文件是干嘛用的,之前直接链接到系统dll不是很好吗?这样编译出的程序也小,兼容性也好。现在在网上下载一些工具,一运行就提示api-ms-win-xxx找不到。然后因为兼容性问题要折腾半天。。。我的程序链接到这些dll上,相比于直接链接到系统dll有什么优点吗?(为什么现代的vs编译器都会这样做)

现在我在网上了解到的是,win-crt-win是"补丁文件",另一种说是"延迟加载的dll"。然后其他的全是某某程序丢失这些dll的修复方法,没有什么更详细的信息。我想问的是这些dll是干嘛用的,msdn上面有关于这些dll的介绍和用途吗,我怎么才能通过设置vs让编译器不要链接到这些dll?

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • qfl_sdu 2021-06-23 11:57
    已采纳

    api-ms-win这些都是操作系统提供的动态库,c/c++的库函数依赖这些库文件(或者说,c/c++提供的函数和功能是建立在这些库基础上的),比如说,在代码中调用了printf函数,printf函数会调用系统底层的api-ms这些库来实现最终的打印功能。调用顺序是:用户写的api  调用 C/C++提供的函数  ,C/C++提供的函数 调用api-ms这些操作系统库函数。

    已采纳该答案
    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题