关闭

检测COM是否可用,删除COM

标签: COM删除可用
340人阅读 评论(0) 收藏 举报
分类:

需要重新注册某个COM组件,但是在注册前希望可以检测当时组件是否可用,

复制代码
1 CLSID const clsid  = {XXX};
2 LPUNKNOWN pUnknow = NULL;
3 const LRESULT lr = ::CoCreateInstance(clsid,NULL,CLSCTX_ALL,IID_IUnknown,(LPVOID*)&pUnknow);
4 if(lr!=REGDB_E_CLASSNOTREG && NULL!=pUnknow){
5     bRes = TRUE;
6 }
7 if(pUnknow){
8     pUnknow->Release();    
9 }
复制代码

随后需要删除该组件文件(DLL),然后放置新的组件重新注册。

但是却发现组件无法删除,错误代码是文件被占用。

以前已碰到过类似的问题,需要在测试完组件后强制让系统卸载加载组件。

CoFreeUnusedLibraries();

原因是我们刚才使用就该组件创建实例,实际就是系统把该组件文件(DLL,OCX)加载到当前进程地址空间中,所以操作组件文件的话会提示文件占用。

如果反注册改组件然后再删除是否能成功呢?这个留给有心人吧

0
0

猜你在找
【直播】机器学习&数据挖掘7周实训--韦玮
【套餐】系统集成项目管理工程师顺利通关--徐朋
【直播】3小时掌握Docker最佳实战-徐西宁
【套餐】机器学习系列套餐(算法+实战)--唐宇迪
【直播】计算机视觉原理及实战--屈教授
【套餐】微信订阅号+服务号Java版 v2.0--翟东平
【直播】机器学习之矩阵--黄博士
【套餐】微信订阅号+服务号Java版 v2.0--翟东平
【直播】机器学习之凸优化--马博士
【套餐】Javascript 设计模式实战--曾亮
查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:807152次
    • 积分:9643
    • 等级:
    • 排名:第1830名
    • 原创:74篇
    • 转载:846篇
    • 译文:2篇
    • 评论:37条
    最新评论