我是一位新来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. Tlbimp .net和COM组件仍需要注册
- 2. 注册COM C#组件 - TYPE_E_REGISTRYACCESS
- 3. 需要在注册表中找到注册COM DLL的clsid
- 4. 域名注册后需要做什么
- 5. 我们什么时候需要注册一个.Net dll和一个COM DLL?
- 6. COM组件如何注册到一半?
- 7. 为经典ASP注册COM组件
- 8. 注册免费激活的COM组件
- 9. 注册一个C#COM组件?
- 10. 使用COM组件没有注册表
- 11. 注册托管COM组件时是否需要'实施类别'键?
- 12. 需要注册LocationListener?
- 13. regsrv32:在注册其更新之前是否需要取消注册COM对象?
- 14. arcgis com注册
- 15. 为什么COM类需要构造函数?如何在不注册的情况下使用COM类?
- 16. 我是否需要COM启用并注册我的库?
- 17. 清单中的注册免费COM需要哪些标签?
- 18. 为什么加载程序在注册表中查找我的免注册COM组件?
- 19. 为什么OCX或DLL文件需要注销然后重新注册?
- 20. 免费注册COM互操作。组件B参考组件A?
- 21. com类库注册
- 22. 注册为COM Interop
- 23. Win32:注册表项需要注册一个ActiveX控件?
- 24. 为什么某些组件需要“需要UIExplorerBlock”和“需要UIExplorerPage”?
- 25. 主干需要js注册
- 26. 需要用户名注册
- 27. 为什么通过C#interop获取COM +组件需要这么长时间?
- 28. Java JDBC:为什么需要注册out参数?
- 29. 为什么Azure订阅需要向提供商注册?
- 30. 在Qt中注册用户定义类需要什么?