知方号

知方号

COM组件的创建与调用以及注册表位置查找示例<怎么找到软件的注册表位置>

COM组件的创建与调用以及注册表位置查找示例

详细的创建过程和调用可以参考

https://blog.csdn.net/weixin_30451709/article/details/98574314?utm_medium=distribute.pc_relevant.none-task-blog-baidujs-2

其中的注册组件 regSvr32 Debug$(TargetName).dll 较关键

 

现在简单来看看注册成功后,系统到底是把东西注册到哪里去了呢?

COM组件生成成功后,我们在.idl的文件中能看到这样的东西

// ComDemo.idl : IDL source for ComDemo.dll//// This file will be processed by the MIDL tool to// produce the type library (ComDemo.tlb) and marshalling code.import "oaidl.idl";import "ocidl.idl";[object,uuid(A106F235-02E7-4F05-8D08-2747C796549D),dual,helpstring("IHelloWorld Interface"),pointer_default(unique)]interface IHelloWorld : IDispatch{[id(1), helpstring("method Show")] HRESULT Show(int iWhat);};[uuid(B4AB42E7-49C1-456F-8DBE-53C51637CACF),version(1.0),helpstring("ComDemo 1.0 Type Library")]library COMDEMOLib{importlib("stdole32.tlb");importlib("stdole2.tlb");[uuid(493D595A-C1AC-47B7-8A3E-90E40D711B52), //注意这个UUIDhelpstring("HelloWorld Class")]coclass HelloWorld{[default] interface IHelloWorld;};};

我们创建的类叫 HelloWorld,它的uuid(493D595A-C1AC-47B7-8A3E-90E40D711B52),

我们可以拿着这个UUID到注册表搜索,果不其然可以搜到以下结果:

先是找到我们的类HelloWorld

然后又找到了我们注册动态库的位置

OK,就不再深究了,结束!

(附上创建和调用Demo)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至lizi9903@foxmail.com举报,一经查实,本站将立刻删除。