Идентификация функций в библиотеках DLL

Обновлен: Ноябрь 2007

Идентификация функции DLL состоит из следующих элементов:

  • Имя или порядковый номер функции

  • Имя файла DLL, в котором может находиться реализация

Например, задание функции MessageBox в библиотеке User32.dll определяет функцию (MessageBox) и ее расположение (User32.dll, User32, или user32). Программный интерфейс приложений Microsoft Windows (Win32 API) может содержать две версии каждой функции, обрабатывающей символы и строки: для 1-байтовых символов ANSI и для 2-байтовых символов Юникода. Если кодировка, представленная полем CharSet, не задана, по умолчанию равна ANSI. Некоторые функции могут быть представленными более чем двумя версиями.

MessageBoxA является точкой входа ANSI для функции MessageBox, а MessageBoxW является версией для Юникода. Список имен функций в конкретной библиотеке DLL, например user32.dll, можно получить с помощью ряда средств командной строки. Например, можно использовать команду dumpbin /exports user32.dll или link /dump /exports user32.dll, чтобы получить имена функций.

Разработчик может переименовать в своем коде неуправляемую функцию. При этом новое имя должно быть сопоставлено исходной точке входа в DLL. Инструкции по переименованию неуправляемой функции DLL в исходном управляемом коде см. в разделе Задание точки входа.

Вызов неуправляемого кода позволяет разработчику управлять значительной частью операционной системы путем вызова функций из интерфейса Win32 API и других библиотек DLL. Помимо Win32 API существует множество других интерфейсов API и DLL, доступных разработчику с помощью вызова неуправляемого кода.

В следующей таблице описывается несколько часто используемых библиотек DLL в Win32 API.

DLL

Описание содержимого

GDI32.dll

Функции интерфейса графических устройств (GDI) для вывода на устройство, например для управления рисованием и шрифтами.

Kernel32.dll

Низкоуровневые функции операционной системы для управления памятью и обработки ресурсов.

User32.dll

Управляющие функции Windows для обработки сообщений, таймеров, меню и взаимодействия.

Полную документацию по интерфейсам Win32 API см. в Platform SDK. Примеры, в которых демонстрируется создание объявлений на основе .NET, предназначенных для использования с платформозависимым вызовом, см. в разделе Маршалинг данных с платформозависимым вызовом.

См. также

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

Использование неуправляемых функций DLL

Задание точки входа

Создание класса, содержащего функции DLL

Создание прототипов в управляемом коде

Другие ресурсы

Вызов функции DLL