Поделиться через


Использование 16-разрядных приложений с 32-разрядными драйверами

Важно!

Эта функция будет удалена в будущих версиях Windows. Избегайте использования этой функции в новых работах по разработке и планируйте изменение приложений, которые в настоящее время используют эту функцию. Вместо этого используйте 32-разрядную или 64-разрядную версию диспетчера драйверов.

Вы можете запускать 16-разрядные приложения с 32-разрядными драйверами в системе Windows, если 32-разрядный драйвер не вызывает явным образом функции API Win32, создающие потоки. Подсистема Windows в Windows (WOW) запускает приложения в 16-разрядном режиме и разрешает 16-разрядные вызовы операционной системы. Библиотеки DLL odbc thunking разрешают 16-разрядные вызовы из приложения к 32-разрядным драйверам. В 16-разрядных приложениях используется API Windows, а для 32-разрядных драйверов используется API Win32.

Архитектура

На следующем рисунке показано, как 16-разрядные приложения взаимодействуют с 32-разрядными драйверами. Между 16-разрядным диспетчером драйверов и 32-разрядными драйверами являются универсальные библиотеки DLL, которые преобразуют 16-разрядные вызовы ODBC в 32-разрядные вызовы ODBC.

Взаимодействие 16-разрядных приложений с пакетом SDKa2 для 32-разрядных драйверов

Примечание

Каждый раз, когда 16-разрядное приложение взаимодействует с 32-разрядным драйвером, 32-разрядный диспетчер драйверов всегда возвращает значение "2.0" в качестве версии ODBC, поддерживаемой драйвером.

Администрирование

Вы можете управлять источниками данных для 32-разрядных драйверов с помощью администратора источника данных ODBC. Чтобы открыть администратора ODBC на компьютерах под управлением Microsoft Windows 2000, откройте панель управления Windows, дважды щелкните Администрирование, а затем дважды щелкните пункт Источники данных (ODBC). На компьютерах под управлением предыдущих версий Microsoft Windows значок называется 32-разрядная версия ODBC или просто ODBC.

На следующем рисунке показано, как 16-разрядное приложение вызывает библиотеку DLL установки 32-разрядного драйвера. Между 16-разрядной библиотекой DLL установщика и библиотекой DLL установки 32-разрядного драйвера является универсальная библиотека DLL для преобразования 16-разрядной библиотеки dll установщика в вызовы DLL 32-разрядного установщика.

Как 16-разрядное приложение вызывает 32-разрядный пакет SDK для установки драйвера

В Windows в Windows (16-разрядная или 32-разрядная) дополнительная библиотека DLL с именем Ds32gt.dll преобразует 16-разрядные значения аргументов, передаваемые через 32-разрядную dll-библиотеку установки, обратно в 16-разрядную.

Компоненты

Компонент ODBC пакета SDK ДЛЯ MDAC 2.8 с пакетом обновления 1 (SP1) включает следующие файлы для запуска 16-разрядных приложений с 32-разрядными драйверами. Эти компоненты находятся в каталоге \Redist.

Имя файла Описание
Odbc16gt.dll 16-разрядная библиотека odbc generic thunking DLL
Odbc32gt.dll 32-разрядная библиотека odbc generic thunking DLL
Odbccp32.dll 32-разрядная библиотека DLL установщика
Odbcad32.exe 32-разрядная программа администратора
Odbcinst.hlp Файл справки установщика
Ds16gt.dll 16-разрядная библиотека DLL настройки 16-разрядного драйвера
Ctl3d32.dll 32-разрядная библиотека трехмерного окна

Кроме того, следующие файлы вместе с 16-разрядным диспетчером драйверов ODBC 2.10, которые не являются частью ODBC 3.51, необходимы и должны быть установлены вместе с 16-разрядным приложением.

Имя файла Описание
Odbc.dll 16-разрядный диспетчер драйверов
Odbcinst.dll 16-разрядная библиотека DLL установщика
Odbcadm.exe 16-разрядная программа администратора ODBC