Ініціалізація бібліотеки dll

Зазвичай бібліотека DLL має код ініціалізації (наприклад, виділення пам'яті), який повинен виконуватися при завантаженні бібліотеки DLL. При використанні Visual C ++ місце додавання коду для ініціалізації бібліотеки DLL залежить від типу бібліотеки DLL, побудова якої виконується. При відсутності необхідності додавання коду ініціалізації або завершення при побудові бібліотеки DLL не потрібно ніяких додаткових дій. Щоб визначити місце додавання коду при ініціалізації бібліотеки DLL, см. Нижченаведену таблицю.

Тип бібліотеки DLL

Місце додавання коду ініціалізації і завершення

Звичайна бібліотека DLL

У код InitInstance і ExitInstance об'єкта CWinApp бібліотеки DLL.

Бібліотека DLL розширення

У функцію DllMain. створену за допомогою майстра MFC DLL.

Бібліотека DLL (НЕ MFC)

У надається користувачем функцію з ім'ям DllMain.

У Win32 все бібліотеки DLL можуть містити додаткову функцію точки входу (звану зазвичай DllMain), яка викликається для ініціалізації і завершення. Це дозволяє при необхідності виділити або звільнити додаткові ресурси. Функція точки входу викликається Windows в чотирьох випадках: приєднання процесу, від'єднання процесу, приєднання потоку і від'єднання потоку.

Бібліотека часу виконання мови C надає функцію точки входу з ім'ям _DllMainCRTStartup і викликає функцію DllMain. Залежно від типу бібліотеки DLL користувачеві необхідно мати функцію з ім'ям DllMain в вихідному коді або використовувати функцію DllMain. надану в бібліотеці MFC.

Схожі статті