Работа с библиотеками динамической компоновки (DLL)
Категория реферата: Рефераты по информатике, программированию
Теги реферата: реферат орган, диплом
Добавил(а) на сайт: Igoshin.
Предыдущая страница реферата | 1 2 3 4 5 6 7 8 9 | Следующая страница реферата
if((hMyDll=LoadLibrary("MyDLL"))==NULL) return 1;
PFN_MyFunction pfnMyFunction;
pfnMyFunction=(PFN_MyFunction)GetProcAddress(hMyDll,"MyFunction");
int iCode=(*pfnMyFunction)("Hello");
FreeLibrary(hMyDll);
return 0;
}
Создание DLL
Теперь, познакомившись с принципами работы библиотек DLL в приложениях, рассмотрим способы их создания. При разработке приложении функции, к которым обращается несколько процессов, желательно размещать в DLL. Это позволяет более рационально использовать память в Windows.
Проще всего создать новый проект DLL с помощью мастера AppWizard, который автоматически выполняет многие операции. Для простых DLL, таких как рассмотренные в этой главе, необходимо выбрать тип проекта Win32 Dynamic-Link Library. Новому проекту будут присвоены все необходимые параметры для создания библиотеки DLL. Файлы исходных текстов придется добавлять к проекту вручную.
Если же планируется в полной мере использовать функциональные возможности MFC, такие как документы и представления, или намерены создать сервер автоматизации OLE, лучше выбрать тип проекта MFC AppWizard (dll). В этом случае, помимо присвоения проекту параметров для подключения динамических библиотек, мастер проделает некоторую дополнительную работу. В проект будут добавлены необходимые ссылки на библиотеки MFC и файлы исходных текстов, содержащие описание и реализацию в библиотеке DLL объекта класса приложения, производного от CWinApp.
Иногда удобно сначала создать проект типа MFC AppWizard (dll) в качестве тестового приложения, а затем - библиотеку DLL в виде его составной части. В результате DLL в случае необходимости будет создаваться автоматически.
Функция DllMain
Большинство библиотек DLL - просто коллекции практически независимых друг от друга функций, экспортируемых в приложения и используемых в них. Кроме функций, предназначенных для экспортирования, в каждой библиотеке DLL есть функция DllMain. Эта функция предназначена для инициализации и очистки DLL. Она пришла на смену функциям LibMain и WEP, применявшимся в предыдущих версиях Windows. Структура простейшей функции DllMain может выглядеть, например, так:
BOOL WINAPI DllMain (HANDLE hInst,DWORD dwReason, LPVOID IpReserved)
{
BOOL bAllWentWell=TRUE;
switch (dwReason)
{
case DLL_PROCESS_ATTACH: // Инициализация процесса.
break;
case DLL_THREAD_ATTACH: // Инициализация потока.
break;
case DLL_THREAD_DETACH: // Очистка структур потока.
break;
Рекомендуем скачать другие рефераты по теме: сочинения по литературе, реферат на тему государство.
Предыдущая страница реферата | 1 2 3 4 5 6 7 8 9 | Следующая страница реферата