本文介绍了如何复制/替换DLL?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个实用程序,通过简单地复制/替换可执行文件来更新应用程序。现在,我有一些DLL文件需要更新。然而,有时Windows不会让我替换它,因为有些东西正在使用它,有时有很多事情使用DLL,我不能保证将被解锁为我取代它。目前,我唯一的解决方法是首先重命名现有的DLL,然后我可以复制新的。但是,旧的DLL被遗忘在一个更改后的文件名中。
如何在这种情况下以程序方式替换DLL?
解决方案
您的方法很好 - 只需重命名文件并将新的DLL复制到正确的位置即可。一旦做到这一点,你可以使用Windows API函数的,以便在下次重新启动机器时注册旧文件以进行删除。从MSDN文档:
So you would want to do something like:
MoveFileEx(szSrcFile, NULL, MOVEFILE_DELAY_UNTIL_REBOOT);
I have not worked much with Delphi. Presumably you could either import the proper Windows API functions and make this call directly from Delphi, or else write a small C++ program that you can call to take care of this for you.
这篇关于如何复制/替换DLL?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!