检测COM是否可用,删除COM

转载 2015年07月07日 11:31:37

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

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

C# winform 串口通信时检测电脑可用串口并显示

单击同一个按钮实现显示“全部串口”和“可用串口”想切换 #region 全部串口和可用串口切换 private void button1_Click(object sender, ...
  • tingzhiyi
  • tingzhiyi
  • 2015年10月12日 13:51
  • 2993

C++获取可使用的COM口列表

int iCOM; char cCom[MAX_PATH] = " "; bool bFirstTime = TRUE; for(int i = 1; i
  • cui412445112
  • cui412445112
  • 2015年12月10日 14:10
  • 847

c#检测有效串口的方法

目前,我已知的方法有两种。 第一种是在网上百度到的,已经不知道原作者是谁了。     for (int i = 0; i             {                 try ...
  • jiaozhentang
  • jiaozhentang
  • 2013年07月18日 12:45
  • 3437

com+组件的注册,卸载和管理

com+打开命令:dcomcnfg 注册和卸载 “Regsvr32.exe”命令是用来对“ActiveX控件”进行注册的。Regsvr32命令格式/u       卸载ActiveX控件/s     ...
  • educast
  • educast
  • 2008年09月05日 21:12
  • 4762

清除COM口数值,释放被占用的COM口

http://blog.csdn.net/cyj5366/article/details/9698603 最近在实用串口工具时,因为不断重装驱动导致com口涨到com22了,而工具软件只能识...
  • jgw2008
  • jgw2008
  • 2017年06月22日 14:32
  • 232

自动列举出电脑上可用的COM口

出处:http://blog.chinaunix.net/uid-20672257-id-2973926.html 开发工具:visual studio 2010 本机...
  • wuhenyouyuyouyu
  • wuhenyouyuyouyu
  • 2016年11月28日 14:39
  • 531

Delphi使用COM对象的时候是否需要CoInitialize

核心提示:MSDN上CoInitialize的解释:Initializes the COM library on the current apartment and identifies the co...
  • Hmillet
  • Hmillet
  • 2017年05月23日 20:03
  • 629

如何知道COM端口在使用中

假如机器上原来有两个COM口,COM1和COM2安装了一个USB设备后,这个USB设备使用了VCP(virtual com port)把COM3占用了,当我安装另一个新设备时,我如何知道哪些COM口已...
  • swayi21
  • swayi21
  • 2007年07月02日 14:33
  • 4545

COM组件开发(五)——使用MFC开发COM组件

使用MFC创建一个进程内组件           这里使用的VS2008,新建一个MFC DLL项目,项目名称为“MFCCOM”,点击“确定”后进入MFC DLL向导,如下图所示:    ...
  • q5806622
  • q5806622
  • 2015年02月26日 17:21
  • 3186

VB检测串口

iamlaosong文 对不存在的串口进行操作会报错,如下图所示,那么是不是先检测一下再操作呢? Windows系统并没有提供什么检测功能,但是,可以对出错进行捕获,像上图中的8002代码,表示无...
  • iamlaosong
  • iamlaosong
  • 2016年06月06日 15:43
  • 1583
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:检测COM是否可用,删除COM
举报原因:
原因补充:

(最多只允许输入30个字)