none
Windows 8.1 中 dll 注册问题 RRS feed

  • 问题

  • 在写程序时,使用了一个dll,之前在windows7 32位系统中,可以运行。在C:\Windows\system32>regsvr32 xxx.dll 下注册的。

    后来换机子以后,系统是 windows 8 64位,在相对的C:\Windows\SysWOW64 下注册,提示注册成功 ,但是仍然不能使用。都是系统管理员权限下,也都把dll放在了对应的文件夹下。这是怎么回事?

    此外,regsvr32 -u xxx.dll 这个命令,网上查到时卸载dll的命令,运行之后也是显示DllRegisterServer 在的C:\Windows\SysWOW64\xxx.dll ,与注册dll成功时显示相同。而且即使已经运行过了,再运行一次,仍然提示这句,既然已经卸载成功了,这次再运行不应该提示失败吗。

    2016年1月21日 2:29

全部回复

  • dll 文件的位置可以不用放在系統目錄.

    你可以通過

    reg export

    regedit

    分別在 Windows 7 和 Windows 8.1 中導出註冊表項

    HKCR\

    然後進行比較這樣可以找到其是否註冊完成.

    對於 64 位系統, 32 位組件的設置保存在

    HKCR\Wow6432Node

    此外, 需要說明的是, 即便在註冊時提示失敗, 但這不一定代表真的不成功. 需要以軟件能否正常運行作爲判斷標準.

    你提到軟件運行失敗, 不知運行條件是否同 Windows 7 一樣.

    比如:

    是否存在額外設置?

    是以標準用戶身法運行, 還是以管理員權限運行?

    是否禁用了 UAC, 因爲 UAC 會在標準用戶對某些關鍵註冊表項進行虛擬重定向, 如果禁用, 則可能失敗.

    訪問對象的 ACL 權限是否設置?

    如果不清楚, 可以考慮通過 Process Monitor 進行跟蹤, 該軟件可在 TechNet 下載.


    Folding@Home

    2016年1月21日 5:20
  • 确认这个 .DLL 文件可以在 64 位系统中使用么?有条件在 64 位 Windows 7、32 位 Windows 8 中试一下。


    Alexis Zhang

    http://mvp.microsoft.com/zh-cn/mvp/Jie%20Zhang-4000545
    http://blogs.itecn.net/blogs/alexis

    推荐以 NNTP Bridge 桥接新闻组方式访问论坛。

    本帖是回复帖,原帖作者是楼上的 <Judas97>;

    | 在写程序时,使用了一个dll,之前在windows7 32位系统中,可以运行。在C:\Windows\system32>regsvr32 xxx.dll 下注册的。
    | 后来换机子以后,系统是 windows 8 64位,在相对的C:\Windows\SysWOW64 下注册,提示注册成功 ,但是仍然不能使用。

    2016年1月21日 13:35
    版主