Есть COM-объект. В клиентской программе работаем с ним — естественно грузится DLL, в которой этот объект находится. Освобождаем объект (счетчик ссылок=0), по идее DLL должна выгрузиться из памяти. Но в действительности этого не происходит. Почему? В умных книжках и документации сказано, что выгрузкой DLL занимается менеджер (SCM). Но как-то получается что менеджер этот выгружает DLL только после выполнения функции CoUnitialize.
Хотелось бы узнать, как менеджер решает, что такую-то DLL нужно выгрузить? Что должно произойти, чтоб он надумал выполнить это действие?
Еще раз повторяю — счетчик ссылок равен нулю — DLL готова к тому, чтоб ее выгрузили.