问题标签 [regsvr32]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
422 浏览

factory - 无法生成工厂对象 - 80040154 错误

我继承了一个复杂的托管/非托管项目的维护,我希望我能以简洁的方式提出这个问题......

我有一个非托管类 (C++),我试图通过托管代码 (C#) 访问它。这是通过以下方式实现的:

  • 非托管类(Prop)编译成非托管dll(PropUnmanaged.dll)
  • PropUnmanaged.dll 注册到 regsvr32
    regsvr32 /s PropDLL
  • PropDLL 中的类和类型使用 tlbimp 暴露给托管代码
    这将创建一个托管 DLL (PropTypesManaged.dll)
    此 dll 未向 regasm 或 gacutil 注册
  • 尝试访问 Prop 的托管类 (MClass) 在一个项目中实现,该项目将 PropTypesManaged.dll 作为其依赖项之一
  • 实现 MClass 的项目失败并显示错误消息
    Retrieving the COM class factory for component with CLSID {1EAD9D36-495C-44B2-8559-A6570E1ECE34} 由于以下错误而失败:80040154

GUID 1EAD... 指的是 tlbimp 生成的 Prop 类的暴露托管类型的 GUID。它在注册表中

错误代码的网络搜索模糊地表明 regsvr32 步骤出现问题,但我的系统报告此步骤成功 OK

我从哪里开始调试呢?

0 投票
1 回答
5518 浏览

delphi - regsvr32 失败,GetLastError 返回 0x0000007e

我正在尝试注册一个由 delphi 制作的库(带有依赖项)。在第一次尝试时,regsvr32 失败说它找不到指定的模块,我找到了答案并将所有依赖项复制到我的 dll 所在的同一目录中。

但是现在,regsvr32 失败并显示消息GetLastError returned 0x0000007e.,我无法在任何地方找到这个特定错误代码的含义。我发现的所有提及都与特定的程序或库有关,以及出于该特定原因如何解决它。例子:

我用来注册的命令是:

知道导致此错误的原因以及如何解决它吗?

更新:似乎错误代码对应于ERROR_MOD_NOT_FOUND,它意味着(以一种非常模糊的方式)“找不到指定的模块。”......我以前遇到过同样的错误。

我将正在运行的安装的整个文件夹复制到测试机器中(而不是尝试进行新的安装)并且我能够注册库。我现在必须确定哪一个是我需要的文件。

0 投票
1 回答
819 浏览

c++ - DllMain 冻结 注册 COM dll 时

我尝试注册一个名为MixCenter.dll的 COM dll 。我已经找到了它所依赖的所有 dll。当第一次执行它的 DllMain 时,它会冻结并且永远不会返回。这似乎是一个死锁,但我没有调用任何LoadLibrary,它永远不会执行到DllMain. 这种情况还有其他原因吗?这DllMain正是它的样子:

我使用 Dependency Walker 记录整个执行过程,日志的基本部分是:

0 投票
0 回答
4688 浏览

dll - 无法注册 DLL/OCX:RegSvr32 失败,退出代码为 0x5

我想在 Windows 7 Professional(64 位)上安装最新的 TeXnicCenter。但是每次我以管理员权限运行安装程序时,我都会收到以下消息:

"C:\Windows\system32\msxml4.dll

无法注册 DLL/OCX:RegSvr32 失败,退出代码为 0x5。单击“重试”以重试,单击“忽略”以继续(不推荐),或单击“中止”以取消安装。”

文件“C:\Windows\System32\regsvr32.exe”已存在,并且与 Microsoft 的 sfc.exe 的完整性检查成功。

我现在能做什么?帮助会很好。

0 投票
2 回答
1830 浏览

c# - C# - 在预构建事件期间注册第三方 COM DLL

我依赖于几个 COM 组件。我的项目是托管的。我想确保最新版本的 COM DLL 已注册预构建。我在预构建步骤中添加了对 DLL 的 regsvr32 调用,但它似乎永远无法正常工作。构建项目时,它会抱怨该类型未注册。我有隔离和非隔离组件。

人们如何处理这种情况?regsvr32 是唯一的答案吗?为什么 MSBuild 没有注意到类型已注册?

0 投票
1 回答
2888 浏览

windows - 64位dll寄存器

我已经使用 x64 build 将 32 位 COM dll 转换为 64 位 dll。我尝试将此 64 位 dll 注册到 64 位 windows 2008 服务器 uisng C:windows\system32 regsrv32.exe 。但我收到一条错误消息“Dllregister服务器失败,错误代码为 0x80029c4a”。我如何在 64 位操作系统中注册这个 dll。

0 投票
2 回答
272 浏览

c++ - MSI 是否能够自动启动具有提升权限的程序/文件?

我正在尝试使 .msi 文件可以打开一个可执行文件,该可执行文件将注册一个浏览器帮助对象。由于这涉及写入注册表,因此必须使用管理权限提升 cmd.exe。我可以操纵 ShellExecute() 函数来弹出一个 UAC 对话框并询问用户是否想以管理员身份运行 cmd,但是,我不想让用户对安装进行任何控制。许多在线研究使我得出结论,没有管理权限就不可能使用浏览器帮助对象,所以我的问题是:假设安装程序已经运行,cmd.exe 是否能够继承 msi 安装程序的权限行政权利?无济于事,我也尝试过以管理员身份自动运行cmd。我感谢任何指导或帮助,

0 投票
1 回答
486 浏览

shell - 在重新启动时安排 regsvr32 执行

我正在 NSIS 上编写一个注册 shell 扩展的安装程序。

在卸载和升级时,由于 explorer.exe 锁定旧扩展,因此无法删除/覆盖旧扩展,并且排除了杀死 - 重新启动进程。

因此,我使用不同的名称提取新扩展名,将旧扩展名标记为删除(卸载/升级)并通过PendingFileRenameOperations注册表项将新扩展名重命名为其原始名称(仅限升级)。到目前为止,这工作正常。

问题是,我必须在启动时注册新的 shell 组件,因为PendingFileRenameOperations仅在重新启动时有效。有没有办法在重新启动后安排 regsvr32 操作?

我不能依靠在RunOnce上执行 .bat 来做到这一点,因为注销/登录也会触发RunOnce操作。

提前致谢。

0 投票
3 回答
15480 浏览

dll - regsvr32 不在注册表中创建任何条目

我在尝试注册 DLL 时遇到问题。我的操作系统是 Windows 7 (x64)。

我以两种不同的方式做到这一点:

1) 使用 regsvr32。我收到消息“DllRegisterServer ... succeedeed”,但在注册表中找不到我的 CLSID。(并且尝试使用此 CLSID 创建组件实例时出现“类未注册”错误)。在这种情况下,我知道永远不会调用 DllRegisterServer(因为我在此函数的开头创建了一个文本文件,但它不是创建)。

2) 显式加载我的 DLL 并调用 DllRegisterServer。在这种情况下,DllRegisterServer 返回 S_OK,但我仍然无法在注册表中找到我的 CLSID 并得到“类未注册”错误。

我确定代码是正确的(因为它不仅在我的操作系统上工作),所以问题似乎出在操作系统上。有没有人遇到过这样的问题?

0 投票
1 回答
1945 浏览

.net - Windows Server 2008 上的 IPHLPAPI.DLL 问题

我正在尝试安装一个使用 API GetIPAddrfromTable 堆栈的应用程序。当我启动应用程序时,我收到错误“在 IPHLPAPI.dll 中找不到过程入口点”

我注意到 dll 文件很旧,所以我尝试替换它,但 Windows server 2008 不允许任何人将任何文件复制到 system32 文件夹,即使您是管理员。

我尝试运行 sfc,它更新了 IPHLPAPI.DLL,我尝试注册新的 DLL,但我收到错误消息“已加载模块 iphlpapi.dll 但找不到入口点 DLLRegisterServer。确保它是一个有效的 DLL 或 OCX 文件”。

我尝试搜索错误消息,他们说了一些关于使用 regasm 的信息,但我收到错误“错误 RA0000:加载失败,因为它不是有效的 .NET 程序集”

这是ak吗