我是一位新来COM的.NET开发人员。我想知道注册COM组件需要什么?注册期间发生了什么。注册COM组件需要什么?
2
A
回答
2
为了使操作系统找 组件时,程序需要它,它 必须在系统中注册。 系统然后将其记录在 注册表中。
一般组件由 运行程序REGSVR32.EXE, 其中假定组件已 进行正确编码,以支持 的DLLRegisterServer()public方法注册。 正在执行regsvr32.exe 应 响应一个对话框指示 成功或失败的 注册。
读
1
COM使用注册表来的ProgID和CLSID的映射到您的组件。这允许某人共同创建COM组件,而无需手动加载.dll等。
2
要实例化COM组件,消费者需要调用CoCreateInstance()(直接或者由某个包装类调用它 - doesn'提供两个GUID - class id和interface id。然后,COM子系统自动查找要加载的库或可执行文件,只知道提供的类ID。为此,它使用注册表中在组件注册期间写入的信息。
其他信息也可以写成。消费者可以使用所谓的ProgID来发现给定符号名称的类ID。它首先调用CLSIDFromProgID()将ProgID转换为类id,然后再转换为CoCreateInstance()。翻译是使用注册表中的信息完成的。
1
可以从系统上的任何进程创建COM对象,而不必知道组件的名称,例如。 Word.Application。由于创建应用程序不必知道包含代码的dll或exe文件驻留在其他位置。注册表拥有所有此信息
- 实现COM对象的文件的物理位置。
- COM对象具有的所有类和接口。
- 其他重要信息。
未经登记调用应用程序需要知道了很多关于其中的dll等人,他们暴露了什么方法,如何叫他们等等逸岸,你很可能会成为呼叫良好的老式DLL。
所有注册是在注册表中的几个条目,但它使很多东西更简单。
相关问题
- 1. 需要在注册表中找到注册COM DLL的clsid
- 2. 域名注册后需要做什么
- 3. 我们什么时候需要注册一个.Net dll和一个COM DLL?
- 4. 注册免费激活的COM组件
- 5. 注册一个C#COM组件?
- 6. 使用COM组件没有注册表
- 7. 注册托管COM组件时是否需要'实施类别'键?
- 8. 需要注册LocationListener?
- 9. arcgis com注册
- 10. 为什么COM类需要构造函数?如何在不注册的情况下使用COM类?
- 11. 我是否需要COM启用并注册我的库?
- 12. 为什么OCX或DLL文件需要注销然后重新注册?
- 13. 注册为COM Interop
- 14. com类库注册
- 15. Win32:注册表项需要注册一个ActiveX控件?
- 16. 为什么某些组件需要“需要UIExplorerBlock”和“需要UIExplorerPage”?
- 17. 为什么Azure订阅需要向提供商注册?
- 18. Winsock注册I/O需要什么内容?
- 19. 在Qt中注册用户定义类需要什么?
- 20. 支持组件是否需要在GAC中注册?
- 21. 可以使用免注册的COM组件而无需在开发机器上注册它?
- 22. 回滚期间在WIX中取消注册COM组件,是否有必要?
- 23. ATL COM类注册.rgs文件默认
- 24. 生成清单文件免注册COM
- 25. 为什么64位COM DLL无法使用Delphi XE3注册
- 26. 为什么我不能注册我的COM DLL?
- 27. “注册COM Interop”实际上做了什么?
- 28. Com + Intero注册Inno Setup
- 29. 用C#取消注册COM#
- 30. 注册免费(Regfree)COM