使用regsvr32无法注册dll

5
我的项目生成了一个dll,在Debug模式下构建时,Visual Studio 2005会自动注册该dll。但是当我尝试在命令提示符中使用“regsvr32”注册同一个dll时,我无法注册。我收到以下错误信息:
模块“..”无法加载。请确保二进制文件存储在指定的路径上或调试它以检查二进制文件或依赖的.DLL文件中的问题。
但是我已经准备好了所有依赖的dll。这个问题的原因是什么?
我尝试使用以下命令注册和取消注册dll:
regsvr32 dll_name.dll regsvr32 /u dll_name.dll

你能提供你正在使用的确切命令(和参数)吗? - Stephan Schinkel
我尝试使用以下命令注册和注销dll文件: regsvr32 dll_name.dll regsvr32 /u dll_name.dll - SyncMaster
4个回答

3

我遇到了相同的错误,我已经将.ocx和.dll文件放置在syswow64文件夹中,并尝试执行以下命令“c:\windows\syswow64> regsvr32 abc.ocx”,但仍然出现错误,请问有什么解决方法吗? - Naveen Kumar

0

当从命令行运行regsvr32时,DLL可能链接到另一个不在路径中的DLL。


0

我知道已经晚了...但是我将我的解决方案添加给其他人,因为我在按照上述答案后遇到了相同的错误:

"我刚刚遇到了同样的问题。

如果你正在运行64位的Windows,并且你将32位的DLL放在Windows\System32\目录下,那么会出现这个错误。

只需要将DLL放入Windows\SysWOW64\目录下,并从那里注册它即可。"

如果你将DDL放入SysWOW64中后仍然遇到相同的错误,那么你需要开启MSMQ功能。

  1. 转到开始菜单
  2. 搜索"打开或关闭Windows功能"
  3. 找到"Microsoft Message Queue(MSMQ) Server"并启用它。 enter image description here

现在,再次注册相同的DLL,这次它将被成功注册。


0

首先,您必须以管理员身份启动Command。 其次,您没有指定dll文件所在的目录。如果您的操作系统是32位Windows操作系统,则regsvr32.exe的默认工作目录是C:\Windows\System32\

您可以从这里这里获取一些答案的帮助。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接