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

C# 无法使用Regsv32注册DLL-错误“;已加载Dll,但未找到入口点DllRegisterServer;,c#,regsvr32,C#,Regsvr32,我用C#3.5编写了自己的类库。为了在经典ASP应用程序中使用此dll,我尝试使用regsvr32命令在注册表中注册此dll。但我遇到典型错误,如“模块“TestDll.dll”已加载,但未找到入口点DllRegisterServer。请确保“TestDll.dll”是有效的dll或OCX文件,然后重试**” 我发现了在regsvr32命令中包含switch/tlb的另一个选项。但是我确定我的dll是否真的被注册了 你能告诉我我错过了什么吗?非常紧急 (注意:-我的机器上安装了操作系统windo

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

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

你能告诉我我错过了什么吗?非常紧急

(注意:-我的机器上安装了操作系统windows 7。这有区别吗? 请尽快回复

问候
Sarang

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

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

对于.net interop,注册和类型初始化的处理方式完全不同。例如,注册由


对com可调用包装器.net/com互操作进行一些研究

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

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

对于.net interop,注册和类型初始化的处理方式完全不同。例如,注册由


对com可调用包装器.net/com互操作进行一些研究

测试DLL是否设置为COM对象?“类库”并不一定意味着“ActiveX库”。除了猜测您没有正确创建可通过COM注册的ActiveX之外,您没有提供足够的信息。如果您想在文章中提供有关“类库”的更多详细信息,我们可能会帮助您找到解决方案。您的测试DLL是否设置为COM对象?“类库”并不一定意味着“ActiveX库”。除了猜测您没有正确创建可通过COM注册的ActiveX之外,您没有提供足够的信息。如果您希望您的帖子提供有关“类库”的更多详细信息,我们可能会帮助您找出如何帮助您找到解决方案