Joe*_*Joe 4 c++ vb6 com vbscript scripting
例如,在语言X中:
let x = CreateOject( "MyProgID" )
x.LateBoundCall()
x.Release() // (or setting x to Nothing in VB-like language, etc)
Run Code Online (Sandbox Code Playgroud)
DLL会发生什么MyProgID?COM是否自动卸载DLL?
这假设上面的代码是在不暴露任何COM的可执行文件中.
Joh*_*ing 10
是的,但不是以确定的方式.Windows定期询问每个加载的DLL" 现在卸载你是否安全?" 响应"是"的任何DLL都将被卸载.
如果通过调用CoGetClassObject加载的DLL无法导出DllCanUnloadNow,则在应用程序调用CoUninitialize函数释放OLE库之前,不会卸载DLL.
请参阅这篇Old New Thing文章.