1

我使用 C# 3.5 编写了自己的类库。为了在经典的 ASP 应用程序中使用这个 dll,我正在尝试使用 regsvr32 命令在注册表中注册这个 dll。但是我收到了典型的错误,例如“已加载模块“TestDll.dll”,但未找到入口点 DllRegisterServer。确保“TestDll.dll”是有效的 DLL 或 OCX 文件,然后重试**。”

我发现了在 regsvr32 命令中包含 switch /tlb 的其他选项,通过它继续进行。但我确定我的 dll 是否真的被注册了?

你能告诉我我在这里想念什么吗?它非常紧迫。

(注意:- 我的机器上有 OS windows 7。它有什么不同吗?) 最快的响应将非常感激。

问候萨朗

4

1 回答 1

1

您正在尝试注册一个不是 COM 库的 dll。Pre .NET com dlls 需要导出一组函数和接口实现,这些实现支持自我注册(在你的情况下)和类工厂的东西。这些标准化的导出本质上是 Windows 中的 com 实现能够/能够通过 com 约定与 DLL 交互的钩子。

对于 .NET,这些导出以及需要它们的工具(如 regsvr32)并不直接应用于我们创建的程序集,即使它们是为 com 互操作设置的。

对于 .net 互操作,注册和类型初始化的处理方式完全不同。例如,注册由一个名为 regasm 的工具处理。

对 com 可调用包装器 .net/com 互操作进行一些研究。http://msdn.microsoft.com/en-us/library/bd9cdfyx.aspx

于 2013-08-10T02:04:18.153 回答