如何将 regcap 用于 64 位 DLL 文件

How can I use regcap for a 64-bit DLL file

我想将 regsvr32 mycomthingie.dll 的操作记录到 .reg 文件中。为此,我下载了 Microsoft Visual Studio Installer Projects,并尝试使用 regcap.exe。它只是在没有错误消息的情况下退出,并且没有创建 reg 文件。我尝试了普通和管理员 cmd 提示。我怀疑问题是目标 dll 是 64 位的,但 regcap.exe 是一个 32 位的可执行文件。

我找不到这个工具的 64 位版本,所以我的问题是,如果我拥有的唯一版本的 DLL 被编译为 64 位 (PE32+)

UPDATE: How to open a Windows binary as a resource in Visual Studio 2019 (use Visual Studio to extract *.RGS files from a COM binary - see comments below).


尽管测试不多,但还是让我添加一下以供记录。

WixHeatATLHarvesterExtension:尝试下载 WixHeatATLHarvesterExtensionhttps://github.com/nirbar/WixHeatATLHarvesterExtension

这将使用新命令扩展 WiX 的正常 heat.exe 工具:

heat atlcom "c:\vsFlex8n.ocx" -out vsFlex8n_COM.wxs

这似乎适用于 64 位 COM 文件。 您得到的是导出的 WiX 源文件,而不是 reg 文件 - 抱歉。您可以手动构造一个 reg 文件吗?基于 WiX 源,您可以转换为 reg?或者,如果您还没有使用 WiX,就转而使用它? Wix quick start link collection.

程序:

  1. Build:为此,您需要下载并构建上面的解决方案。
  2. Install:构建完成后安装 ATLHarvester.msi,这将将组件放在 WiX 安装目录中。不过,您需要先下载并安装 the WiX toolkit
  3. Configure:现在您还可以将 WiX bin 文件夹添加到您的环境路径,但如果您使用heat.exe 的完整路径(最后一部分未经测试)。您还应该能够使用 WIX 环境变量:%WIX%\bin\heat.exe(在 cmd.exe查看WIX变量路径).

如果你把dll上传到有依赖关系的地方,我可以试试。这些 64 位 COM 文件以前对我来说也是一个严重的痛苦。


还发现这些项目完全不适合我: