Windows 64bit 平台使用 regsvr32 注册驱动动态库问题

    技术2022-05-13  3

    在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驱动的数据链接属性配置文件。


    最新回复(0)