在Windows 64bit平台上,使用Delphi (32bit),测试加载新开发的oledb 64bit驱动时,发现udl数据链接面板中无此驱动
原因是32bit版本的delphi只去注册表中32bit区域查找驱动注册信息,而64bit DLL驱动注册到了注册表64bit区域。
防网络盗版原文,特声明于此,本文章博客 http://blog.csdn.net/eskynet
问题调研如下:
windows 64bit 有两个版本的regsvr32
C:/Windows/System32/regsvr32, 64-bitC:/Windows/SysWOW64/regsvr32, 32-bit
Windows server 2008
无论使用哪个版本的regsvr32注册驱动动态库DLL,注册表中的注册信息位置取决于动态库的版本,即:
驱动动态库DLL如果为32bit, 无论使用哪个版本的regsvr32 ,都注册到注册表中32bit区域(键值Wow6432Node)
驱动动态库DLL如果为64bit, 无论使用哪个版本的regsvr32 ,都注册到注册表中64bit区域
Windows7
使用 Regsrv32 注册 DLL,登录使用的账户要有管理凭据(admin),以“管理员身份运行”启动cmd,然后
regsvr32 oledb.dll
regsvr32 -u oledb.dll
这个平台上注册32bit DLL 要使用C:/Windows/SysWOW64/regsvr32
64bit要使用C:/Windows/System32/regsvr32
http://support.microsoft.com/kb/305097/zh-cn
http://support.microsoft.com/kb/282747/en-us
http://www.differentpla.net/content/2008/10/things-i-learnt-week-regsvr32exe-windows-x64
注:*.udl文件是 oledb驱动的数据链接属性配置文件。