4

似乎没有 64 位版本tlbinf32.dll,这个(旧)COM DLL 用于提取 COM 组件的信息。(见这个答案

我需要从 64 位 C# 应用程序访问它。我没有设法将它托管到一个单独的代理进程中,我仍在获得异常 REGDB_E_CLASSNOTREG。我的代码适用于 x86 平台,但我也必须为 64 位实现它。

任何人都可以通过提供一步一步的过程来帮助我将它启动到代理 ( Dllhost) - 或者可能是另一种使用它的方式吗?

您是否知道通过本机 COM Dll 的所有方法、类进行浏览的更好选择?

4

1 回答 1

10
  • 打开 Windows 的“组件服务”
  • 打开节点到“我的电脑/COM+ 应用程序”
  • 右键单击,选择添加新应用程序
  • 选择一个“空应用程序”,例如将其命名为“tlbinf”
  • 确保您选择“服务器应用程序”(这意味着向导会很好地帮助您创建)
  • 选择您希望服务器应用程序运行的用户(对于测试,您可以选择交互式用户,但这是一个重要的决定)
  • 您不必添加任何角色,也不必添加任何用户
  • 打开这个新创建的应用程序,右键单击“组件”并选择添加一个新的
  • 选择安装新组件
  • 浏览到您的 tlbinf32.dll 位置,在向导检测到 3 个要公开的接口后按“下一步”

而已。您应该看到如下内容:

在此处输入图像描述

现在您可以使用相同的客户端代码,它应该可以工作。请注意,性能不可比(进程外与进程内)。

您刚刚创建的代理应用程序有很多参数,您可以稍后使用相同的 UI 重新配置。您还可以编写脚本或编写代码(C#、powershell、VBScript 等)来自动执行上述所有步骤。

于 2017-03-03T14:31:39.263 回答