【发布时间】:2011-04-18 04:04:12
【问题描述】:
.rgs文件中有一些注册表信息,我想知道.rgs文件中的信息是如何添加到注册表中的?
我有一个项目 AAA,它会生成文件 AAA.DLL,并且有一个文件 xxx.rgs 包含注册信息,并且AAA.DLL被构建,然后它将被部署到另一台机器B,所以我不知道如何在机器B上添加注册信息,我需要使用regsvr32命令注册AAA.dll吗?
【问题讨论】:
.rgs文件中有一些注册表信息,我想知道.rgs文件中的信息是如何添加到注册表中的?
我有一个项目 AAA,它会生成文件 AAA.DLL,并且有一个文件 xxx.rgs 包含注册信息,并且AAA.DLL被构建,然后它将被部署到另一台机器B,所以我不知道如何在机器B上添加注册信息,我需要使用regsvr32命令注册AAA.dll吗?
【问题讨论】:
通常,您的代码调用CComModule::UpdateRegistryFromResource(),后者又将控制权传递给在 ATL 中实现的特殊机制,该机制完成这项工作 - 解析通过将 .rgs 文件嵌入到模块中产生的资源并编辑注册表。 ATL 带有源代码,因此您可以阅读它是如何完成的。
【讨论】:
DllRegisterServer(),后者又调用 CComModule::UpdateRegistryFromResource(),后者从该 DLL 的资源中加载 .rgs 文件内容,对其进行解析并修改注册表。