该应用程序继续使用旧的 DLL 文件

该应用程序继续使用旧的 DLL 文件

当我打开应用程序时,我得到了一个错误.错误说没有comctl32.dll在文件夹“C:\Windows\WinSxS\x86_microsoft.windows.common-controls_6595b64144ccf1df_5.82.19041.1110_none_c0da534e38c01f4d”中。

我打开了该文件夹,它是空的。

但是在一个名称略有不同的类似文件夹“C:\Windows\WinSxS\x86_microsoft.windows.common-controls_6595b64144ccf1df_6.0.19041.1110_none_a8625c1886757984”中,我发现了 comctl32.dll 文件。

我如何才能告诉程序应该从哪个文件夹获取 *.dll 文件?CLIPSWIN.EXE 不是我编译的应用程序,但我必须使用它来结束我的教育项目。

在教授的电脑上,它运行良好

答案1

只需将 .dll 复制到程序正在寻找的文件夹即可。

答案2

您可能无法做到这一点,除非您能够根据较新版本的 DLL 编译应用程序的源代码。

当应用程序使用特定版本的 DLL 进行编译时,它会记录实例化对象和调用 DLL 中的方法所需的所有“入口点”。此过程称为绑定或链接。如果使用具有新方法或更改的方法入口点的较新版本的 DLL,则程序将无法链接到该 DLL 的对象和方法。

如果您可以获得所需的 dll 的正确版本,则可以将其放入可执行文件的文件夹中,如 Gantendo 所述。可执行文件通常会先在自己的位置搜索库,然后再查找其他地方。

答案3

有点陌生,如果您遇到与我类似的问题,那么就有解决方案。

在以管理员权限执行的 cmd.exe 中运行这些命令。

DISM  /online  /cleanup-image  /startcomponentcleanup  
DISM /Online /Cleanup-Image /CheckHealth
DISM /online /cleanup-image /scanhealth
DISM /online /cleanup-image /restorehealth 
SFC /SCANNOW 

然后重启电脑。之后问题就解决了。

相关内容