firemail

标题: COM技术 [打印本页]

作者: Qter    时间: 2021-7-28 11:17
标题: COM技术
本帖最后由 Qter 于 2021-7-29 17:47 编辑

通过一个简单的组件实现两个接口,CoCreateInstance 调用 DLLGetClassObject返回相应的组件类厂 类厂调用CreateInstance创建组件 用DLLRegisterServer向注册表中加一个组件ID,前提是要对注册表中CLSID下的结构有一定的基础。


查看dll依赖及导出信息
dumpbin.exe /exports "你的dll路径l"
或使用
depends.exe
链接:https://pan.baidu.com/s/1BdlqgfVqMxaXnxGam5hXZg上面2.2的打不开,就用下面1.0
链接:https://pan.baidu.com/s/1Nnr841wdhnO2xSAwkicudA
提取码:q1d9
提取码:wi2h


eXeScope.exe
但不能查看64位的dll
链接:https://pan.baidu.com/s/1vDF3CXSfP5WarL374ll5TA
提取码:xonu

.def有时不生效,删除后通过下面方法重新添加一下项目右键->添加->新建项->Vicual C++->代码->模块定义文件
链接器  输入  模块定义文件


奔溃重启

_wcslwr_s(s, 256);
改成
_wcslwr(s);





作者: Qter    时间: 2021-7-30 09:06
本帖最后由 Qter 于 2021-7-30 10:38 编辑

https://docs.microsoft.com/en-us ... hell/int-shell-exts
https://docs.microsoft.com/en-us ... reate-icon-handlers
https://docs.microsoft.com/en-us ... on-overlay-handlers
https://social.msdn.microsoft.co ... tion?forum=vcmfcatl
Are DllGetClassObject() etc. exported?  Run dumpbin /exports on your dll to make sure.

dumpbin /exports "E:\github\tmp\McloudOverlays\Debug\McloudOverlays.dll"
dumpbin /exports "F:\soft\overlayicon_mcloud\x64\Debug\OverlayIcon.dll"



taskkill /f /im explorer.exe & explorer





欢迎光临 firemail (http://firemail.wang:8088/) Powered by Discuz! X3