64位Delphi程序适配Firebird的fbclient.dll与gds32.dll位数疑问
问题解答
1. 是否需要另行寻找64位fbclient.dll?
不需要。你安装的64位Firebird 3.0安装包本身就包含64位的fbclient.dll,它存放在C:\Program Files\Firebird\Firebird_3_0\根目录下。你之前对比的WOW64子目录下的文件是32位版本——这个目录是Firebird专门存放32位兼容库的地方,供32位程序调用。直接从根目录复制64位的fbclient.dll到你的64位Delphi程序目录即可使用。
2. 为什么gds32.dll位数呈现此“异常”?
这是正常现象,由Windows 64位系统的文件重定向机制决定:
C:\Windows\System32是64位系统存放64位系统文件和库的官方目录,安装程序会把64位fbclient.dll改名为gds32.dll放在这里,供64位程序调用;C:\Windows\SysWow64是Windows为兼容32位程序设置的目录,里面存放32位系统文件和库,安装程序会把32位fbclient.dll改名后放到这里,供32位程序调用。
这种分配能让不同位数的程序自动获取对应版本的库,不存在异常。
3. 是否误解了SysWow64的功能?
是的。SysWow64全称是“Windows 32-bit On Windows 64-bit”,核心作用是为32位程序提供运行环境,目录内所有文件都是32位的。64位程序默认从System32加载64位库;当32位程序尝试访问System32时,Windows会自动将请求重定向到SysWow64,确保32位程序拿到适配的32位库。
内容的提问来源于stack exchange,提问作者Jan Doggen
相关产品推荐
相关产品推荐

