Использование 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-разрядное приложение взаимодействует с 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-разрядного установщика.
В 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 |