在制作软件的安装卸载时,有时一些动态库被某些进程占用,不可以直接删除,需要先将占用这个动态库的进程结束。怎么才能知道动态库被哪个进程占用呢?
开始的思路是这样的,在DOS里面有这样一个命令“tasklist /m XXX.dll”这个命令会列出所有占用了XXX.dll的进程。OK,原理简单。只要能得到DOS命令的返回结果就OK了。
代码如下:
/************************************************************************/
/* 得到cmd命令的返回结果 */
/************************************************************************/
BOOL GetCmdResult(IN char * pcCmdLine,//传入的cmd命令
OUT char * pcOutPut,//cmd返回结果
IN OUT DWORD * dwOutPutLen)//cmd返回结果的空间大小
{
SECURITY_ATTRIBUTES sSecAttr;
HANDLE hRead;
HANDLE

在软件安装卸载中,若DLL被占用无法直接删除,本文介绍如何通过CMD命令找到占用DLL的进程。利用`tasklist /m XXX.dll`命令获取占用DLL的进程列表,并展示VC代码实现该功能,通过管道通信获取CMD命令的返回结果。
最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



