Windows 注册COM组件需要什么?
我是一名新加入COM的.NET开发人员。我想知道注册COM组件需要什么?注册过程中会发生什么 为了让操作系统找到 组件当程序需要它时,它 必须在系统中注册。 然后,系统将其记录在 登记处 通常,组件由 运行程序REGSVR32.EXE, 它假定组件具有 已正确编码以支持 DLLRegisterServer()公共方法。 执行regsvr32.exe 应该 用一个指示 成功还是失败 注册 阅读Windows 注册COM组件需要什么?,windows,com,registry,Windows,Com,Registry,我是一名新加入COM的.NET开发人员。我想知道注册COM组件需要什么?注册过程中会发生什么 为了让操作系统找到 组件当程序需要它时,它 必须在系统中注册。 然后,系统将其记录在 登记处 通常,组件由 运行程序REGSVR32.EXE, 它假定组件具有 已正确编码以支持 DLLRegisterServer()公共方法。 执行regsvr32.exe 应该 用一个指示 成功还是失败 注册 阅读 COM使用注册表将progid和clsid映射到组件。这允许用户在不需要手动加载.dll的情况下共同创建
COM使用注册表将progid和clsid映射到组件。这允许用户在不需要手动加载.dll的情况下共同创建COM组件,等等。要实例化COM组件,使用者调用CoCreateInstance()(直接调用或由某个包装类调用-无所谓)为它提供两个GUID—类id和接口id。然后COM子系统自动查找要加载的库或可执行文件,只需知道提供的类id。为此,它使用在组件注册期间写入的注册表中的信息
也可以编写其他信息。消费者可以使用所谓的ProgID来发现给定符号名的类id。它首先调用CLSIDFromProgID()将ProgID转换为类id,然后再次调用CoCreateInstance()。转换是使用注册表中的信息完成的。可以从系统上的任何进程创建COM对象,而不需要知道任何组件的名称,例如Word.Application。由于创建应用程序不必知道包含代码的dll或exe所在的位置,因此必须执行其他操作。登记处保存所有这些信息