发展是曲折的但也是前进的

人生路漫漫 只能上下求索

检测COM是否可用,删除COM

需要重新注册某个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)加载到当前进程地址空间中,所以操作组件文件的话会提示文件占用。

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

阅读更多
文章标签: COM 删除 可用
个人分类: 计算机基础 C/C++
上一篇dllexport、dllimport
下一篇VC++ 的MFC 和ATL 及COM 是什么?
想对作者说点什么? 我来说一句

COM端口检测

2015年04月21日 1.32MB 下载

[Inside COM][COM技术内幕]

2009年05月27日 9.21MB 下载

COM编程 COM编程

2010年06月28日 1.33MB 下载

COM本质论-COM本质论

2010年07月29日 17.41MB 下载

com技术内幕com技术内幕

2010年03月13日 9.24MB 下载

COM原理与应用 comcom学习

2007年08月29日 737KB 下载

COM技术内幕 COM

2010年03月06日 9.61MB 下载

com技术内幕 com技术内幕

2007年12月23日 8.02MB 下载

没有更多推荐了,返回首页

关闭
关闭