Access 2002

Вызовы, не поддерживаемые Win32


И конечно, нужно, как минимум, просмотреть все операторы Declare, заменить все 16-разрядные вызовы на 32-разрядные и заменить объявления функций, получающих строковые аргументы, на их ANSI-версии. Как видите, работы немало.

Все преобразования 16-разрядных вызовов Windows можно разделить на пять классов.

Вызовы, которые просто должны обращаться к библиотекам Win32 вместо библиотек Win 16.

Вызовы, которые должны быть модифицированы для использования версий ANSI функций Win32 API.

Вызовы, которые в Win32 были дополнены новыми функциональными возможностями.

Вызовы, которые имеют новые расширенные версии. (Например, функция GetWindowExt имеет новую расширенную версию GetWindowExtEx.)

Вот приблизительное руководство по преобразованию приложений, использующих вызовы Winl6:

1.   Начните с поиска всех операторов Declare в существующем коде.

2.   Обратитесь к документации Win32, чтобы выяснить, к какому классу относится каждый вызов.

3.   Модифицируйте операторы Declare (если вызываемые функции Windows API все еще поддерживаются).

4.   Найдите и проанализируйте все обращения программы к функциям Windows API. Убедитесь, что типы передаваемых им параметров соответствуют новым объявлениям. Огромное количество аргументов придется изменить с Integer на Long. Убедитесь, что эти изменения распространяются на весь ваш код.

5.   Сохраните базу данных и сделайте ее резервную копию.

6.   Установите точку останова у каждого вызова Windows API. Запустите и протестируйте программу. Достигнув очередной точки останова, убедитесь, что аргументы функции имеют правильные значения и размеры. Затем продолжите выполнение кода в пошаговом режиме.

Это огромная работа, но ее не избежать, если вы хотите, чтобы ваш код надежно работал под управлением Win32.

Комментарии закрыты