Поделиться через


Инициализация обычных библиотек DLL

Поскольку обычные библиотеки DLL имеют объект CWinApp, они должны выполнять инициализацию и завершение в том же расположении, что и приложение MFC: в функциях элементов InitInstance и ExitInstance класса, производного от класса CWinApp, библиотеки DLL. Так как MFC обеспечивает функцию DllMain, вызываемую _DllMainCRTStartup для PROCESS_ATTACH и PROCESS_DETACH, не следует создавать свою функцию DllMain. Предоставляемая MFC функция DllMain вызывает InitInstance при загрузке библиотеки DLL, а ExitInstance — перед выгрузкой библиотеки DLL.

Обычная библиотека DLL может отслеживать несколько потоков с помощью вызова функций TlsAlloc и TlsGetValue в своей функции InitInstance. Эти функции позволяют библиотеке DLL отслеживать данные о потоках.

При использовании в обычной библиотеке DLL, динамично скомпонованной с MFC, любых баз данных MFC OLE, MFC Database (или DAO) или MFC с поддержкой сокетов, соответственно, отладочные библиотеки DLL расширения MFC MFCOxxD.dll, MFCDxxD.dll и MFCNxxD.dll (где xx — номер версии) компонуются автоматически. Следует вызвать одну из следующих предопределенных функций настройки для каждой из этих библиотек DLL, используемых в обычных библиотеках DLL CWinApp::InitInstance.

Тип поддержки MFC

Вызываемая функция настройки

MFC OLE (MFCOxxD.dll)

AfxOleInitModule

MFC Database (MFCDxxD.dll)

AfxDbInitModule

Сокеты MFC (MFCNxxD.dll)

AfxNetInitModule

Выберите действие.

Дополнительные сведения

См. также

Основные понятия

Инициализация библиотеки DLL