解决 “计算机中丢失gdiplus.dll”

装了某些精简版Ghost系统的人,可能在打开个别软件时,弹出以下提示:

无法启动此程序,因为计算机中丢失 gdiplus.dll。尝试重新安装该程序以解决问题。

在这里插入图片描述
这类问题,网上都是千篇一律的答案。让你从网上下载这个dll,复制到system32或syswow64目录,然后执行“regsvr32 dll文件名” 注册。

本文的故障,照网上这些答案做了后,就会弹出以下提示:

模块 “gdiplus.dll” 已加载,但找不到入口点 DllRegisterServer。
请确保 “gdiplus.dll” 为有效的 DLL 或 OCX 文件,然后重试。

在这里插入图片描述
问题没有解决。且不说网上下载的这些dll可能存在版本兼容问题,甚至有可能下载到病毒,或者不小心点了高速下载被下载器捆绑了流氓软件。

一般情况下只有com组件才需要regsvr32注册,gdiplus.dll明显不是。在:
HKEY_CLASSES_ROOT\CLSID
HKEY_CLASSES_ROOT\Wow6432Node\CLSID
下搜索到文件名的,才需要用regsvr32注册。

用Everything在原版系统上搜索,会发现gdiplus.dll只在winsxs路径下,system32或syswow64目录下根本没有。

所以对于这个问题,正确的解决方法是:

Win8及以上一系统

右击开始按钮,命令提示符管理员或powershell管理员,执行以下命令:

dism /online /cleanup-image /restorehealth

Win7

一、
正常电脑相同版本系统上,打开C:\Windows\WinSxS提取gdiplus.dll,连文件夹一起复制到自己电脑相同路径上粘贴,或者从原版系统镜像提取。

由于winsxs需要TrustedInstaller权限才能操作,正常是无权限粘贴的。可以用命令xcopy制作个复制文件夹的批处理,用Nsudo软件启用全部特权运行这个批处理。
如,我在批处理同目录的gdiplus里放了这些文件夹,就执行:

xcopy /E /Y %~dp0gdiplus\* c:\windows\winsxs

如下图,我用了nsudoc命令行版nsudo。
在这里插入图片描述
二、
安装KB947821 Win7更新准备工具也能修复。预计安装近50分钟。。。

三、
有时候winsxs下的gdiplus.dll特别多,一个个复制浪费太多时间。在正常系统下安装打不开的软件,看加载的dll,只拷贝加载的那个就行了。
比如本文里出错的是QQ音乐,所以用Process Explorer查看故障进程加载的dll,如图:
在这里插入图片描述
浏览到指定目录后,复制那个文件到自己电脑上对应路径就可以了。
如找到的路径是:

C:\Windows\winsxs\x86_microsoft.windows.gdiplus_6595b64144ccf1df_1.1.7601.17514_none_72d18a4386696c80\gdiplus.dll

只复制gdiplus.dll,同目录制作批处理如下:

copy /Y %~dp0gdiplus.dll  C:\Windows\winsxs\x86_microsoft.windows.gdiplus_6595b64144ccf1df_1.1.7601.17514_none_72d18a4386696c80\

在自己电脑用Nsudo启用全部特权运行批处理就能复制了。

四、
个别软件可能用到更高版本的gdiplus.dll,这个文件可能在某些补丁里包含有,如kb4022722、kb4015546、kb4012212等。不清楚哪个补丁有的话,打完所有补丁就行了。

那么对于丢失别的DLL,通用的解决方法是:

1.先安装微软常用运行库合集(vc2005、2010、2012、2013、2015-2019)。
2.再运行directxrepair修复directx,或安装DirectX Redist June 2010。Win10可以在控制面板,启用或关闭windows功能,旧版组件(Legacy Components),勾选DirectPlay。

还没解决的话,在正常系统用Everything搜索这个dll文件。
1.确定是windows路径下的系统文件:
win8以上系统,可以用上面提到的dism命令修复组件存储,再:

sfc /scannow

win7系统,也可以执行上面sfc命令,或用360系统急救箱的系统文件修复功能修复(只支持system32目录下的个别系统文件,如下图这个dll就不行)。
在这里插入图片描述
如果win7下sfc命令修复不了,可能是组件存储里缺失了,需要从正常系统winsxs目录,复制这个dll的所有目录到自己电脑上。

2.确定是非windows路径下的系统文件,考虑是某个软件自带的dll组件,需要重新安装这个软件或换个地方下载完整版,又或者卸载这个软件。

发布了38 篇原创文章 · 获赞 49 · 访问量 18万+

猜你喜欢

转载自blog.csdn.net/hfhbutn/article/details/105243318