V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
kidzgy
V2EX  ›  问与答

程序根目录突然多了[api-ms-win-core-*.dll]文件

  •  
  •   kidzgy · 2022-09-30 11:19:08 +08:00 · 1142 次点击
    这是一个创建于 814 天前的主题,其中的信息可能已经有所发展或是发生改变。

    https://pic1.imgdb.cn/item/63365f1316f2c2beb12a6ab5.png

    很奇怪,我一个魔兽争霸,根目录原先是没有这些个文件的,突然就多了这么多 DLL ,我纳闷,这些 DLL 我系统盘已经有了的,系统直接加载就好了,干嘛还会自动复制到程序目录一份呢?这个要怎么解决?我发现另外的程序在运行一段时间之后,根目录也会有自动生成这些文件。不知道要怎么禁止这种行为?

    4 条回复    2022-09-30 19:20:42 +08:00
    Otho
        1
    Otho  
       2022-09-30 11:22:22 +08:00
    忍着 or 不玩 or 换其他系统
    ysc3839
        2
    ysc3839  
       2022-09-30 11:46:21 +08:00
    这些是从 Win8 开始引入的 API sets ,原因是因为历史设计问题,Windows 各类 API 没有进行细致的分类,同时不同平台的 Windows 可能会出现同一个 API 被分到不同名称的 DLL 中的情况,因此微软把 API 进行了细致的分类。
    在支持 API sets 的系统中这些 DLL 不是真实存在,系统会自动重定向到真正的 DLL 中。但是在不支持 API sets 的系统中就只能通过 forwarder DLL 进行重定向了。
    你会在程序目录下看到,大概率是因为程序附带了 Universal CRT(UCRT)。UCRT 是 Win8 引入的,跟随操作系统发布的 CRT ,因此使用了 API sets ,但是实际上 UCRT 不强依赖新版本的系统,Win7 也能用,在 Win7 下使用时需要补齐 API sets ,于是程序就把这些都附带上了。
    kidzgy
        3
    kidzgy  
    OP
       2022-09-30 14:50:41 +08:00
    @ysc3839 如果程序采用了 UCRT ,那就无法禁止 DLL 自动复制到程序文件夹了,是这个意思吧?
    ysc3839
        4
    ysc3839  
       2022-09-30 19:20:42 +08:00 via Android
    @kidzgy 不完全是,程序还可以选择不支持 Win7 ,就不需要附带那些 DLL 。
    另外我不知道能否把 UCRT 安装到 Win7 系统中,如果可以的话程序也不需要附带 UCRT 。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2559 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 10:28 · PVG 18:28 · LAX 02:28 · JFK 05:28
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.