[问与答] 求助大家:由[draw.io-20.2.3-windows-no-installer.exe]缺失[ffmpeg.dll]所引发地一系列疑惑

现象 1:
1.我从 GITHUB 下载了[draw.io-20.2.3-windows-no-installer.exe],也就是便携版,双击即可运行
2.用了几天,没啥问题,昨天晚上,启动时候提醒我”ffmpeg.dll 缺失,重新安装程序可能解决此问题”
3.我一脸懵,这都用好几天了,怎么今天才突然说缺 DLL 呢?无头绪,一顿狂按回车键,居然又启动成功了?
问题 1:
程序[draw.io-20.2.3-windows-no-installer.exe]报告缺 DLL[ffmpeg.dll]后,
疑问 A:用了好几天了没问题,怎么突然缺 DLL 了?其它程序删除了 DLL?
疑问 B:可是我又没有给它补上 DLL,狂按一通回车键后,它又不缺 DLL 了?它自己连接网络后下载了?可惜现在又没有条件断网测试了(因为这一天一夜中它从来没有提示缺 DLL 了)

现象 2:
1.我搜索了一大堆解决方案,大意都差不多,让下载 ffmpeg.dll 后放到[c:\Windows\System32]和[c:\Windows\SysWOW64]中
2.但是我不想下载这些来历不明地 DLL,想找一家来自大公司并且有数字签名地 ffmpeg.dll
3.突然想到既然[draw.io-20.2.3-windows-no-installer.exe]能运行,那想必系统中已经有 ffmpeg.dll 了吧?于是全盘搜索,我滴乖乖,CLASH FOR WINDOWS/EDGE CORE/EDGE 标准版 /微信,大家的安装目录里都有 ffmpeg.dll,还有一些乱码目录里也有 ffmpeg.dll,全系统中竟然存在 62 个 ffmpeg.dll,但是[c:\Windows\System32]和[c:\Windows\SysWOW64]这俩目录中都没有 ffmpeg.dll
问题 2:
那么[draw.io-20.2.3-windows-no-installer.exe]此时(即正常运行时)到底调用了哪一个[ffmpeg.dll]呢?
A:通用且默认地搜索 DLL 地位置—即[c:\Windows\System32]和[c:\Windows\SysWOW64]这俩目录下都不存在 ffmpeg.dll
B:如果[draw.io-20.2.3-windows-no-installer.exe]和其它程序一样,自带了 ffmpeg.dll,那还能报告 ffmpeg.dll 缺失?
C:难道[draw.io-20.2.3-windows-no-installer.exe]还能借用其它程序捆绑地 ffmpeg.dll 吗?不可能吧?

现象 3:
1.印象中 EXE 会优先调用同目录下地 DLL?于是我把[c:\Program Files (x86)\Microsoft\EdgeCore\104.0.1293.70\ffmpeg.dll]复制到了[draw.io-20.2.3-windows-no-installer.exe]同目录之下,因为这个 DLL 是有微软数字签名地
2.之前用了几天,每次启动[draw.io-20.2.3-windows-no-installer.exe]的第一个实例的时候,都会弹一个窗,让选择是否新建绘图以及切换界面语言,然后才能进入绘图主工作区,以后新开地每一个实例则可以直接进入绘图主工作区
3.当把[c:\Program Files (x86)\Microsoft\EdgeCore\104.0.1293.70\ffmpeg.dll]复制到[draw.io-20.2.3-windows-no-installer.exe]同目录之后,直接就进入绘图主工作区了,哪怕是第一个实例也不会出现切换界面语言地弹窗
4.当删除[draw.io-20.2.3-windows-no-installer.exe]同目录下地 ffmpeg.dll 后,又会恢复到上述步骤 2 中所描述地行为
5.结合步骤 3 和步骤 4,是不是可以断定[draw.io-20.2.3-windows-no-installer.exe]确实调用了同目录下地[ffmpeg.dll](自 c:\Program Files (x86)\Microsoft\EdgeCore\104.0.1293.70\ffmpeg.dll 复制而来)呢?

所以请问大家,为什么会出现这些差异?
在我狂按回车键之后[draw.io-20.2.3-windows-no-installer.exe]到底调用了哪一个[ffmpeg.dll]呢?

发表回复

您的电子邮箱地址不会被公开。