我曾尝试使用下面的代码:如何在Windows 7 64位上注册DLL文件?
cd c:\windows\system32
regsvr32.exe dllname.ax
但是这不是为我工作。如何在Windows上使用64位处理器注册DLL文件?
我曾尝试使用下面的代码:如何在Windows 7 64位上注册DLL文件?
cd c:\windows\system32
regsvr32.exe dllname.ax
但是这不是为我工作。如何在Windows上使用64位处理器注册DLL文件?
regsvr32 name.dll
类型到命令提示符(在升高的模式下执行!)并按下“Enter”。请注意,name.dll
应替换为您要注册的DLL的名称。例如,如果您想注册iexplore.dll,请键入regsvr32 iexplore.dll
。
我用同样的东西,然后它也给出错误信息 – 2011-02-04 12:07:32
请记住在提升模式下运行命令提示符。 – Puneet 2014-11-05 05:14:43
`regsvr32` **带有文件名和扩展名的.dll文件的路径**,然后按ENTER键 – 2015-02-10 10:34:45
嘛,你不指定,如果它是一个32位或64位的DLL,你不包含错误信息,但我想这是因为这知识库文章中所描述的相同的问题:Error Message When You Run Regsvr32.exe on 64-Bit Windows
那篇文章报价:
此行为发生在System32文件夹 Regsvr32.exe文件是一个64位版本。当您运行Regsvr32来注册一个DLL时,默认情况下您使用的是64位版本。那篇文章
解决方案:
要解决此问题,从%SystemRoot%\ SYSWOW64 文件夹运行Regsvr32.exe。例如,键入以下命令注册DLL:
cd \windows\syswow64
regsvr32 c:\filename.dll
为什么这不是所选的答案? – 2014-04-10 19:40:43
这确实应该是正确的答案。我可以理解,在他原来的文章中,语法是不正确的,但是Rajkumar评论说他即使在使用正确的语法时也收到错误消息。 这需要两个步骤才能找到正确的答案,而不是一个人搜索。首先选择正确的答案,然后按照评论链,结束这篇文章。 – Rob 2014-08-21 15:28:17
运行字符串中的小问题。如果你想从运行窗口运行,应该是“c:\ windows \ syswow64 regsvr32 c:\ filename.dll”。 – Hightower 2014-10-31 10:38:24
知道错误信息将是相当宝贵的。它是为了提供信息,尽管它对我们没有任何意义。被迫猜测,我会说这个DLL是一个32位的DirectX过滤器。在这种情况下,这应该是行动的正确的做法:
cd c:\windows\syswow64
move ..\system32\dllname.ax .
regsvr32.exe dllname.ax
这必须在提升的命令提示符下运行,使UAC不能停止的需要的注册表访问。问这个问题了,在superuser.com
如果DLL是32位:
如果DLL是64位:
最后我找到了解决办法只是运行CMD以管理员身份,然后写
cd \windows\syswow64
然后写这
regsvr32 c:\filename.dll
我希望这个问题的答案将帮助您
在x64系统,system32用于64位,syswow64用于32位(不像其他答案中所述的那样)。 WOW(Windows上的Windows)是在64位子系统下运行的32位子系统)。
这是一个混乱的命名术语,只会造成混淆,但事实就是这样。
再次...
syswow64是32位,不是64位。
system32是64位,不是32位。
这些目录中都有一个regsrv32。一个是64位,另一个是32位。 这与odbcad32等人的交易相同。 (如果你想看到32位ODBC驱动程序,它将不会在64位的system32中显示默认odbcad32)。
打开开始菜单并在搜索框中输入cmd按住Ctrl + Shift和按回车键
这以管理员模式运行命令提示符。
现在键入:regsvr32 MyComobject.dll
如果DLL是位:
复制DLL到C:\的Windows \ SYSWOW64 \
在升高命令提示:%windir%\SysWoW64\regsvr32.exe %windir%\SysWoW64\namedll.dll
如果该DLL是位:
复制DLL到C:\ WINDOWS \ SYSTEM32 \
在升高命令提示符:%windir%\System32\regsvr32.exe %windir%\System32\namedll.dll
我知道这似乎南辕北辙,但这是它的工作方式。请参阅:
http://support.microsoft.com/kb/249873
引用:“注意在Windows操作系统的64位版本,还有Regsv32.exe文件的两个版本:
的64位版本是%SYSTEMROOT%\ System32 \ regsvr32.exe
32位版本是%systemroot%\ SysWoW64 \ regsvr32.exe。
“
我刚刚测试了这个非常简单的方法和它完美的作品 - 但我用内置的Administrator帐户,所以我不必赴汤蹈火为提升权限
。以下批处理文件减轻了需要输入/输出系统文件夹中的文件移动用户也离开它到Windows应用的Regsvr32
正确版本
说明:。
在包含库(-.dll
或-.ax
)文件的文件夹,你想注册,打开一个新的文本文件,并粘贴在下面的程序之一:
echo BEGIN DRAG-AND-DROP %n1 REGISTRAR FOR 64-BIT SYSTEMS
copy %1 C:\Windows\System32
regsvr32 "%nx1"
echo END BATCH FILE
pause
echo BEGIN DRAG-AND-DROP %n1 REGISTRAR FOR 32-BIT SYSTEMS
copy %1 C:\Windows\SysWOW64
regsvr32 "%nx1"
echo END BATCH FILE
pause
将您的新文本文件保存为一批(-.bat
)文件;然后只需将您的-.dll
或-.ax
文件拖放到批处理文件的顶部。
如果UAC没有给你运行该批处理文件作为管理员的机会,你可能需要手动提升权限(说明适用于Windows 7):
Create shortcut
;Properties
;Compatibility
选项卡;Run this program as administrator
的方框;-.dll
或-.ax
文件拖放到新快捷方式而不是批处理文件的顶部。就是这样。我选择了COPY
而不是MOVE
以防止任何与UAC相关的后续尝试失败。成功注册后应删除原始库(-.dll
或-.ax
)文件。
不要担心到系统文件夹(C:\Windows\System32
或C:\Windows\SysWOW64
)由以前的传球制造有关副本 - 他们将在每次运行批处理文件时被覆盖。
除非你跑错了批处理文件,在这种情况下,你可能会想运行适当的批处理文件之前删除了错误的系统文件夹(C:\Windows\System32
或C:\Windows\SysWOW64
)复印一份。 ..或...
帮助窗口要选择合适的库文件被完全合格的目录位置进行注册。
C:\Windows\System32
C:\Windows\SysWOW64
%nx1
regsvr32 "C:\Windows\System32\%nx1"
regsvr32 "C:\Windows\SysWOW64\%nx1"
%nx1
运行这个霰弹枪批处理文件,whi将CH(按顺序):
C:\Windows\System32
;C:\Windows\System32
中删除您的库文件;C:\Windows\SystemWOW64
的原创,未经注册的副本有一个在Windows 7中的不同登录为管理员并没有给相同的权限运行一个程序作为管理员的时候。
转到开始 - 所有程序 - 配件。 右键单击命令窗口,选择“以管理员身份运行” 现在通过正常注册的dll:regsrvr32 xxx.dll
虽然这样做,如果你得到错误代码0x80040201,尝试在DllRegisterServer failed with the error code 0x80040201的解决方案,但请确保您打开命令提示符为以管理员身份运行。
这里的一切都是错误的路径失败。然后我想起了Win95的旧日子里的一招。打开.dll所在的程序文件夹,打开C:/ Windows/System32,向下滚动到regsvr32,并将程序文件夹中的dll拖放到rgsrver32上。热潮,完成。
有关regsvr32的混淆部分是在64位窗口上名称和路径没有改变,但它现在注册了64位DLL。 SysWOW64中存在32位regsvr32,这个名称似乎代表64位应用程序。但名称中的WOW64指的是Windows 64上的Windows,或者更多的Windows 64位上的Windows 32位。当你这样想起这个名字时,即使它在这种情况下令人困惑,这个名字也是有道理的。
我找不到我原来的源上的MSDN博客但这个维基百科文章http://en.wikipedia.org/wiki/WoW64
你需要运行cmd.exe
在c:\windows\system32\ by administrator
命令中引用: 对于注销 * .dll文件
regsvr32.exe /u C:\folder\folder\name.dll
注册 *。dll文件
regsvr32.exe C:\folder\folder\name.dll
这里是我固定一个Win7的X64机器上这个问题:
“的CoCreateInstance()失败 Plkease检查您的注册表项 CLSID {F088EA74 -2E87-11D3-B1F3-00C0F03C37D3},并确保您登录作为管理员”
希望这有助于!
看到这个问题被标记为“vb.net”,我不得不想知道为什么你要注册一个你在VB.NET中创建的DLL。要与`regsvr32`一起使用,DLL必须导出函数`DllRegisterServer`和`DllUnregisterServer`。根本没有注册绝大多数您创建的DLL。 – 2011-02-03 11:41:19
你的意思是什么不起作用或没有用?你有错误信息吗?它说什么? – 2011-02-04 12:08:52