Архитектура Microsoft Windows для разработчиков


Шлюзование


Эта операция выполняется, когда операционная система преобразует вызов 16-разрядной функции в вызов 32-разрядной. Процессы Windows 95 и Windows NT не могут содержать одновременно и 16-разрядный, и 32-разрядный код. Шлюз позволяет коду с одной стороны границы вызывать код с другой ее стороны. Каждая платформа использует один или несколько механизмов шлюзования:

  • механизм базовых шлюзов позволяет 16-разрядному Windows-приложению в системе под управлением Windows 95 и Windows NT загрузить и вызвать 32-разрядную библиотеку;
  • с помощью механизма плоских шлюзов, реализованного только в Windows NT, Win32-пpилoжeниe загружает и вызывает 16-разрядную библиотеку и наоборот.

Использование API Win32

В этом упражнении Вы создадите окно сообщения, используя API Win32 и встроенную функцию Visual Basic MsgBox. > Создание окна сообщения средствами API Win32

  1. Запустите Microsoft Visual Basic и создайте новый проект стандартного исполняемого модуля.
  2. В меню Project выберите команду Add Module.
  3. В разделе 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

  4. Добавьте новую командную кнопку в форму Form1.
  5. В обработчике события Click кнопки Command1 наберите следующий код:

    MessageBox Me.hwnd, "API MessageBox function", "API", 0

  6. Запустите приложение.
  7. Щелкните кнопку Commandl.

    Функция API Win32 MessageBox будет вызвана непосредственно из кода Visual Basic.

> Создание окна сообщения средствами Visual Basic

  1. Запустите Visual Basic и создайте новый проект стандартного исполняемого модуля.
  2. Добавьте командную кнопку в форму Forml.
  3. В обработчике события Click кнопки Commandl наберите следующий код:

    MsgBox "Visual Basic MsgBox function"

  4. В меню Run щелкните команду Start, чтобы запустить программу.
  5. Щелкните кнопку Commandl.

    Обратите внимание на появившееся окно сообщения — на сей раз Visual Basic самостоятельно вызвал функцию MessageBox из библиотеки User32.dll.




- Начало -  - Назад -  - Вперед -



Книжный магазин