在.rgs文件中,有一些注册表信息,我想知道.rgs文件中的信息如何添加到注册表中?
我有一个项目AAA,它会生成文件AAA.DLL,并且有一个文件xxx.rgs,其中包含注册表信息,并且AAA.DLL已构建,然后将其部署到另一台机器B,所以我不知道如何在机器B上添加注册表信息,我需要使用regsvr32命令注册AAA.dll吗?
您的 DLL 项目通常有一个 .rc 文件,其中包含对该 .rgs 文件的引用。编译 DLL 时,.rgs 文件内容将作为资源嵌入。
稍后您调用 regsvr32,它会加载 DLL,运行 DllRegisterServer(),后者又调用
CComModule::UpdateRegistryFromResource()
,后者又将控制权传递给 ATL 中实现的特殊机制,该机制执行该工作 - 解析通过嵌入.rgs 文件导入模块并编辑注册表。
ATL 附带了源代码,因此您只需阅读它是如何完成的。