Консервированный MFC DllMain не вызывает ExitInstance для DLL_PROCESSS_DETACH? - PullRequest
1 голос
/ 27 марта 2009

Консервированный DllMain для MFC 8.0, по-видимому, не вызывает ExitInstance при получении DLL_PROCESS_DETACH. Одним из возможных решений является определение моего собственного DllMain, но как мне указать компоновщику использовать мой, а не MFC?

Или есть еще одно переопределение, которое вызывается для DLL_PROCESS_DETACH, о котором я не знаю?

Ответы [ 2 ]

1 голос
/ 27 марта 2009

У меня были похожие проблемы для проекта, скомпилированного с / clr. Вы в такой же ситуации? Мне никогда не удавалось отследить его до определенного состояния, но изменение некоторых статических инициализаторов для установки значения null очистило его. Я думаю, что это как-то связано с порядком регистрации статических деструкторов.

0 голосов
/ 04 июня 2009

Я не уверен, почему ваш ExitInstance не вызывается, но можно определить свой собственный DllMain, скопировав содержимое файла dllmodul.cpp MFC в файл в вашей dll и добавив любые дополнительные необходимые функции. Процедура описана в этой статье базы знаний MS . Хотя он был написан для MFC 4.0, я успешно использовал этот метод для приложений, использующих MFC 8.0.

...