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

时间:2013-08-07 23:33:49

标签: regsvr32

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

我在regsvr32命令中找到了包含switch / tlb的其他选项,由此继续。但我确定我的dll是否真的被注册了?

你能告诉我在这里缺少什么吗?非常迫切。

(注意: - 我的机器上有操作系统Windows 7。它有区别吗?) 最快的回应将非常感激。

此致 萨朗

1 个答案:

答案 0 :(得分:1)

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

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

对于.net互操作,注册和类型初始化的处理方式完全不同。例如,注册由a tool called regasm处理。

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