无法使用Regsv32注册DLL-错误“;Dll已加载,但找不到入口点DllRegisterServer”;

本文关键字:加载 找不到 入口 DllRegisterServer Dll Regsv32 注册 DLL- 错误 | 更新日期: 2023-09-27 18:26:44

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

我找到了在regsvr32命令中包含switch/tlb的另一个选项。但我确信我的dll是否真的被注册了?

你能告诉我我这里缺了什么吗?非常紧急。

(注意:-我的机器上有操作系统windows 7。这有区别吗?)最快的回复将不胜感激。

问候Sarang

无法使用Regsv32注册DLL-错误“;Dll已加载,但找不到入口点DllRegisterServer”;

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

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

对于.net interop,注册和类型初始化的处理方式截然不同。例如,注册是由一种名为regasm的工具处理的。

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