Dynamic-Link程式庫更新
有時需要以較新版本取代 DLL。 在取代 DLL 之前,請先執行版本檢查,以確保您將較舊的版本取代為較新版本。 可以取代正在使用中的 DLL。 您用來取代使用中的 DLL 的方法取決於您所使用的作業系統。 在 Windows XP 和更新版本上,應用程式應該使用 隔離的應用程式和並存元件。
如果您執行下列步驟,就不需要重新開機電腦:
- 使用 MoveFileEx 函 式來重新命名要取代的 DLL。 請勿指定MOVEFILE_COPY_ALLOWED,並確定重新命名的檔案位於包含原始檔案的相同磁片區上。 您也可以藉由提供不同的副檔名,直接重新命名相同目錄中的檔案。
- 將新的 DLL 複製到包含已重新命名 DLL 的目錄。 所有應用程式現在都會使用新的 DLL。
- 使用 MoveFileEx 搭配MOVEFILE_DELAY_UNTIL_REBOOT來刪除已重新命名的 DLL。
進行這項取代之前,應用程式會使用原始 DLL,直到卸載為止。 進行取代之後,應用程式會使用新的 DLL。 當您撰寫 DLL 時,請務必小心確保已備妥這種情況,特別是當 DLL 維護全域狀態資訊或與其他服務通訊時。 如果 DLL 未準備好進行全域狀態資訊或通訊協定的變更,更新 DLL 將會要求您重新開機電腦,以確保所有應用程式都使用相同的 DLL 版本。