Re[2]: DECLARE_CLASSFACTORY_SINGLETON в VS6, 7.1, 8.0
От: morphine  
Дата: 01.12.06 17:16
Оценка:
КЛ>ну создай ручками в WinMain

Вот чувствую я, что должен быть другой способ. Что удалось нарыть:

В 6.0 мой объект создается при следущем вызове (из InitInstance):
_Module.RegisterClassObjects(CLSCTX_SERVER, REGCLS_MULTIPLEUSE);

Прошелся в нем отладчиком, обнаружил вот что:
1) вызывается new для фабрики класса
2) вызывается конструктор класса CComClassFactorySingleton
3) конструктор CComClassFactory
4) конструктор CComObjectRootEx<ATL::CComMultiThreadModel>
5) конструктор CComObjectRootBase
6) в конструкторе CComObjectGlobal создается мой объект

Все замечательно.

В 8.0 (с версиями в сабже ошибся) зашел в ту же функцию:
1) вызывается new для фабрики класса
2) вызывается конструктор класса CComClassFactorySingleton
3) конструктор CComClassFactory
4) конструктор CComObjectRootEx<ATL::CComMultiThreadModel>
5) конструктор CComObjectRootBase

До CComObjectGlobal дело так и не доходит, мой объект
не создается.

Выходит надо как-то заставить вызываться конструктор CComObjectGlobal.

Буду копать дальше
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.