进程检测程序
最近写一个进程检测程序
测试时 打开其他一个程序
如果打开成功
该检测程序一切正常
如果失败 将出现以下错误
"0x77e8d6f4"指令引用的"0x00000000"内存。该内存不能为"read"
现在我以经查出错误的位置 在于
hModuleSnap = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, dwPID);
但不知道要怎么解决 我用了异常处理 没有办法捕获到异常
BOOL CScanProcess::getProcessModule (DWORD dwPID, DWORD dwModuleID,
LPMODULEENTRY32 lpMe32, DWORD cbMe32)
{
BOOL bRet = FALSE;
BOOL bFound = FALSE;
HANDLE hModuleSnap = NULL;
MODULEENTRY32 me32 = {0};
try
{
cout<<"before..............."<<dwPID<<endl;
//创建快照
hModuleSnap = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, dwPID);
cout<<"after..............."<<endl;
}
catch(std::exception &e)
{
cout<<"catch ..........."<<endl;
getch();
}
catch(unsigned &exception)
{
cout<<"catch2 ..........."<<endl;
getch();
}
if (hModuleSnap == INVALID_HANDLE_VALUE)
return (FALSE);
//快照大小
me32.dwSize = sizeof(MODULEENTRY32);
if (Module32First(hModuleSnap, &me32))
{
do
{
CopyMemory (lpMe32, &me32, cbMe32);
bFound = TRUE;
}while (!bFound && Module32Next(hModuleSnap, &me32));
bRet = bFound;
}
else
bRet = FALSE;
//关闭
CloseHandle (hModuleSnap);
return (bRet);
}
问题点数:100、回复次数:7Top
1 楼chenzhichao2008(陈智超)回复于 2005-06-02 11:55:32 得分 0
我c++的异常处理了解很少
也许异常处理有误
哪位朋友帮忙一下 谢谢
Top
2 楼chenzhichao2008(陈智超)回复于 2005-06-02 11:56:50 得分 0
请不要用VC的异常处理
Top
3 楼oyljerry(【勇敢的心】→ ㊣提拉米苏√㊣)回复于 2005-06-02 14:01:32 得分 20
CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);Top
4 楼zhousqy(标准C匪徒)(甩拉,甩拉)回复于 2005-06-02 14:21:47 得分 20
学习。Top
5 楼healer_kx(甘草(楼主揭贴吧,我们这些上班灌水的也不容易))回复于 2005-06-02 14:26:19 得分 20
少用异常,异常本身可能比异常还有更多的异常。。。Top
6 楼wosirius(神经第六)回复于 2005-06-02 15:02:04 得分 20
mTop
7 楼mostideal(三甲)回复于 2005-06-03 00:21:10 得分 20
markTop




