2011-02-23 41 views
0

我不知道这是一个简单的问题,或者它取决于DLL ...我有一个代码库,其中DLL使用atlbase.h和我认为这意味着它注册一个相当标准的一组密钥/值?如果是这样,MSDN上有一个指南如何编写脚本来安装(更重要的是卸载)相同的密钥,以便我的安装程序可以做同样的事情?regsvr32.exe为DLL添加什么密钥?

+0

您可以像REGSVR32.EXE一样确定您是否存在注册表存在 - 通常您只需致电regsvr32.exe即可。 –

+0

我被告知这是一种不好的做事方式,虽然我不完全知道为什么。 –

+0

@Mr。失望:http://msdn.microsoft.com/en-us/library/bb204770%28VS.85%29.aspx#no_selfreg –

回答

1

ATL本身没有增加任何东西。通常ATL项目有许多可协同创建的类,每个类都有一个与之关联的registry script。 regsrv32只需调用DllRegisterServer。 ATL的DllRegisterServer实现循环遍历可协作类的列表并调用每个注册表脚本的处理。所以,注册表是用注册表脚本中提供的信息编写的。默认情况下,这是标准的COM类和接口元数据。它可以是别的,只要开发者在注册表脚本中提供了一些额外的信息。