配合使用 16 位应用程序和 32 位驱动程序

重要

Windows 的未来版本中将移除此功能。 避免在新的开发工作中使用此功能,并计划修改当前使用此功能的应用程序。 请改用 32 位或 64 位驱动程序管理器。

只要 32 位驱动程序未显式调用创建线程的 Win32 API 函数,就可以在基于 Windows 的系统上运行具有 32 位驱动程序的 16 位应用程序。 Windows 上的 Windows (WOW) 子系统在 16 位模式下运行应用程序,并解析对操作系统的 16 位调用。 ODBC thunking DLL 将应用程序的 16 位调用解析为 32 位驱动程序。 16 位应用程序使用 Windows API,32 位驱动程序使用 Win32 API。

体系结构

下图显示了 16 位应用程序如何与 32 位驱动程序通信。 在 16 位驱动程序管理器和 32 位驱动程序之间,是将 16 位 ODBC 调用转换为 32 位 ODBC 调用的泛型 thunking DLL。

16 位应用如何与 32 位驱动程序 通信

注意

每当 16 位应用程序与 32 位驱动程序交互时,32 位驱动程序管理器始终返回“2.0”作为驱动程序支持的 ODBC 版本。

管理

可以使用 ODBC 数据源管理器管理 32 位驱动程序的数据源。 若要在运行 Microsoft Windows 2000 的计算机上打开 ODBC 管理员,请打开 Windows 控制面板,双击“管理工具”,然后双击“数据源” (ODBC) 。 在运行以前版本的 Microsoft Windows 的计算机上,图标命名为 32 位 ODBC 或简称 ODBC

下图显示了 16 位应用程序如何调用 32 位驱动程序设置 DLL。 在 16 位安装程序 DLL 和 32 位驱动程序安装 DLL 之间是一个通用的 thunking DLL,它将 16 位安装程序 DLL 调用转换为 32 位安装程序 DLL 调用。

16 位应用如何调用 32 位驱动程序安装程序 DLL

在 Windows 上的 Windows (16 位到 32 位 thunking) 中,名为 Ds32gt.dll 的附加 thunking DLL 将通过 32 位设置 DLL 传递的 16 位参数值转换回 16 位。

组件

MDAC 2.8 SP1 SDK 的 ODBC 组件包含以下文件,用于运行具有 32 位驱动程序的 16 位应用程序。 这些组件位于 \Redist 目录中。

文件名 说明
Odbc16gt.dll 16 位 ODBC 泛型 thunking DLL
Odbc32gt.dll 32 位 ODBC 泛型 thunking DLL
Odbccp32.dll 32 位安装程序 DLL
Odbcad32.exe 32 位管理员程序
Odbcinst.hlp 安装程序帮助文件
Ds16gt.dll 16 位驱动程序设置通用 thunking DLL
Ctl3d32.dll 32 位三维窗口样式库

此外,以下文件以及 16 位 ODBC 2.10 驱动程序管理器(不属于 ODBC 3.51 的一部分)是 16 位应用程序所必需的,并且应随 16 位应用程序一起安装。

文件名 说明
Odbc.dll 16 位驱动程序管理器
Odbcinst.dll 16 位安装程序 DLL
Odbcadm.exe 16 位 ODBC 管理员程序