好久没上来透气了(快一年了吧),好想念csdn里的大侠们啊!先祝大家新年快乐!
大家都知道,动态连接库DLL技术是Windows程序开发的一个重要的途径,包括ATL,ActiveX/.com,.net,实际都是该技术的衍生,它突出了动态分配的这么一个核心理念,是Wintel这一廉价体系中必然采取的措施!(否则,Intel发不了,Micro也发不了;这两个不要脸的)
Windows中提供了一些加载DLL的API,如Loadlibrary,SaveLoadlibrary等等,这里我就不再详细叙述了,我现在的问题是:
当程序使用这些API加载了某个DLL(在内存中),这时发生了该DLL的磁盘的 replace,那么,replace能成功吗?
如果我没有记错的话,我曾经遇到过两种情况:一种是,windows系统中的某些dll是不能直接replace的,会提示“该文件正在使用中”;另一种是可以replace的,包括我自己写程序做实验的时候。
请大侠们提点一二,小弟有点困惑!
大家都知道,动态连接库DLL技术是Windows程序开发的一个重要的途径,包括ATL,ActiveX/.com,.net,实际都是该技术的衍生,它突出了动态分配的这么一个核心理念,是Wintel这一廉价体系中必然采取的措施!(否则,Intel发不了,Micro也发不了;这两个不要脸的)
Windows中提供了一些加载DLL的API,如Loadlibrary,SaveLoadlibrary等等,这里我就不再详细叙述了,我现在的问题是:
当程序使用这些API加载了某个DLL(在内存中),这时发生了该DLL的磁盘的 replace,那么,replace能成功吗?
如果我没有记错的话,我曾经遇到过两种情况:一种是,windows系统中的某些dll是不能直接replace的,会提示“该文件正在使用中”;另一种是可以replace的,包括我自己写程序做实验的时候。
请大侠们提点一二,小弟有点困惑!
留意。