Лабораторная работа №9. Создание динамических библиотек. Цель работы: Освоить создание динамических библиотек. Задания: Создать dll



бет4/4
Дата02.12.2023
өлшемі21,58 Kb.
#131420
түріЛабораторная работа
1   2   3   4
Байланысты:
Лабораторная работа 9

3. Какие API-функции используются при работе с DLL?

- **Описание:** Загружает DLL в адресное пространство процесса.
- **Пример:** HINSTANCE hDll = LoadLibrary("MyDLL.dll");

  • 2. `GetProcAddress`

- **Описание:** Получает адрес экспортируемой функции или переменной из загруженной DLL.
- **Пример:** typedef int (*AddFunction)(int, int);
AddFunction addFunc = (AddFunction)GetProcAddress(hDll, "Add");

  • 3.`FreeLibrary`

- **Описание:** Выгружает DLL из адресного пространства процесса.
- **Пример:** FreeLibrary(hDll);

  • 4. `GetModuleFileName`

- **Описание:** Получает полный путь к исполняемому файлу или DLL, откуда была вызвана функция.
- Пример char buffer[MAX_PATH];
GetModuleFileName(NULL, buffer, MAX_PATH);

  • 5. `GetLastError`

- **Описание:** Возвращает код последней ошибки, произошедшей в системе.
- **Пример:** DWORD error = GetLastError();

  • 6. `SetLastError`

- **Описание:** Устанавливает код ошибки для использования в последующих вызовах.
- **Пример:** SetLastError(ERROR_CUSTOM);

  • 7. `LoadResource`

- **Описание:** Загружает ресурс из DLL.
- **Пример:**
HRSRC hResource = FindResource(hDll, MAKEINTRESOURCE(ID_MY_RESOURCE), RT_MY_RESOURCE_TYPE);
HGLOBAL hResData = LoadResource(hDll, hResource);

  • 8. `LockResource`

- **Описание:** Получает указатель на данные ресурса, загруженного с помощью `LoadResource`.
- **Пример:**
const char* myString = static_cast(LockResource(hResData));


Эти функции обеспечивают ключевые операции при работе с динамическими библиотеками в Windows. При использовании DLL важно обращаться к ним осторожно и учитывать потенциальные ошибки, чтобы обеспечить стабильность и безопасность приложения.


Достарыңызбен бөлісу:
1   2   3   4




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет