Инициализация обычных библиотек 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 |
Выполняемые задачи
Дополнительные сведения
Поведение библиотеки времени выполнения языка C и функция _DllMainCRTStartup
Использование библиотек DLL расширения баз данных, OLE и сокетов в обычных библиотеках DLL
Программы-оболочки локального хранилища потока (Техническое примечание MFC 58)