Windows 注册DLL做什么?

Windows 注册DLL做什么?,windows,com,dll,Windows,Com,Dll,我知道如何注册dll,但我从未真正确定我为什么要这么做,或者在什么条件下必须注册dll。有人能给我解释一下或者给我指一些文件吗 注册DLL时,将调用DLL中的DllRegisterServer方法入口点。类似地,取消注册DLL时会调用DllUnregisterServer 如中所述: 指示进程内服务器 为所有用户创建其注册表项 此服务器中支持的类 模块。如果此功能失败,则 登记处所有业务的状态 类别是不确定的 对于COM DLL,您需要实现自己的DllRegisterServer和DllUnre

我知道如何注册dll,但我从未真正确定我为什么要这么做,或者在什么条件下必须注册dll。有人能给我解释一下或者给我指一些文件吗

注册DLL时,将调用DLL中的
DllRegisterServer
方法入口点。类似地,取消注册DLL时会调用
DllUnregisterServer

如中所述:

指示进程内服务器 为所有用户创建其注册表项 此服务器中支持的类 模块。如果此功能失败,则 登记处所有业务的状态 类别是不确定的

对于COM DLL,您需要实现自己的
DllRegisterServer
DllUnregisterServer
入口点方法,这些方法根据需要进行注册/注销。可以找到
DllRegisterServer
的示例代码

注册DLL的最终结果是,DLL中组件的所有CLSID都在
HKEY\U CLASSES\u ROOT\CLSID
下注册。当从另一个DLL或应用程序实例化COM对象时,这允许
CoCreateInstance
找到正确的服务器

DllUnregisterServer
将执行相反的操作,并从注册表中删除由
DllRegisterServer
放入其中的所有CLSID


可以找到有关DllRegisterServer的更多一般信息。

通常称为DLL注册的是当它实现COM对象时。regsvr32确保可以创建对象的实例。例如,当VBScript使用New或CreateObject()时,注册可确保COM知道加载哪个DLL以生成新实例,无论是通过名称还是CLSID


请参阅以获取(非常)简短的摘要。

只需查看regsvr32.exe的源代码

我惊讶地发现,此源代码实际上可用于Visual Studio:“Simply”。。。(至少是主观的,如果没有加载一点的话)当我在VB6中创建ActiveX DLL时,我不必实现DllRegisterServer。链接已断开。请提供另一个。完成。也存档为