개발
COM 을 Release 해도 바로 Dll이 Unload 되지 안는다.
한번
2009. 5. 17. 17:35
ActiveX를 소멸하고 나서 Dll을 Unlaod 시키기 위해서 아래의 함수를 사용한다.
CoFreeUnusedLibraries ( http://msdn.microsoft.com/en-us/library/ms679712(VS.85).aspx )
그러나 COM의 Apartment Type에 따라서 Delay Time 이 발생할수 있다고 한다.
그 이유는 COM의 Design 이라고 한다. (성능상의 이유로 MS에서 그렇게 동작하도록 하였다는 군요 ^^ )
참고 : http://support.microsoft.com/kb/301357
그래서 CoFreeUnusedLibraries 함수를 사용할때는 주의를 해 주어야 합니다.
언로드 되었는지 확실하게 체크하던가, CoUninitialize를 호출해주는 꽁수를 쓰던가..
COM 자체를 STA로 하던가.. ㅎㅎ