Шлюзование
Эта операция выполняется, когда операционная система преобразует вызов 16-разрядной функции в вызов 32-разрядной. Процессы Windows 95 и Windows NT не могут содержать одновременно и 16-разрядный, и 32-разрядный код. Шлюз позволяет коду с одной стороны границы вызывать код с другой ее стороны. Каждая платформа использует один или несколько механизмов шлюзования:
- механизм базовых шлюзов позволяет 16-разрядному Windows-приложению в системе под управлением Windows 95 и Windows NT загрузить и вызвать 32-разрядную библиотеку;
- с помощью механизма плоских шлюзов, реализованного только в Windows NT, Win32-пpилoжeниe загружает и вызывает 16-разрядную библиотеку и наоборот.
- Запустите Microsoft Visual Basic и создайте новый проект стандартного исполняемого модуля.
- В меню Project выберите команду Add Module.
- В разделе General Declarations наберите следующий код:
Declare Function MessageBox Lib "user32" Alias "MessageBoxA"(ByVal hwnd As Long, ByVal IpText As String, ByVal IpCaption As String, ByVal wType As Long) As Long
- Добавьте новую командную кнопку в форму Form1.
- В обработчике события Click кнопки Command1 наберите следующий код:
MessageBox Me.hwnd, "API MessageBox function", "API", 0
- Запустите приложение.
- Щелкните кнопку Commandl.
Функция API Win32 MessageBox будет вызвана непосредственно из кода Visual Basic.
> Создание окна сообщения средствами Visual Basic
- Запустите Visual Basic и создайте новый проект стандартного исполняемого модуля.
- Добавьте командную кнопку в форму Forml.
- В обработчике события Click кнопки Commandl наберите следующий код:
MsgBox "Visual Basic MsgBox function"
- В меню Run щелкните команду Start, чтобы запустить программу.
- Щелкните кнопку Commandl.
Обратите внимание на появившееся окно сообщения — на сей раз Visual Basic самостоятельно вызвал функцию MessageBox из библиотеки User32.dll.
Содержание раздела
Использование API Win32
В этом упражнении Вы создадите окно сообщения, используя API Win32 и встроенную функцию Visual Basic MsgBox. > Создание окна сообщения средствами API Win32