求助啊。。。。。这个代码为啥会奔溃?
#include"windows.h"
#include"stdio.h"
#include"tlhelp32.h"
int main(int argc,char *argv[])
{
PROCESSENTRY32 pe32;
pe32.dwSize=sizeof(pe32);
HANDLE hProcessSnap=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
if (hProcessSnap==INVALID_HANDLE_VALUE)
{
printf("CreateToolhelp32Snapshot is failed");
return -1;
}
BOOL bResult =Process32First(hProcessSnap,&pe32);
while (bResult)
{
printf("process_name is %s :\n",pe32.szExeFile);
printf("process_Id is %s :\n",pe32.th32ParentProcessID);
bResult=Process32Next(hProcessSnap,&pe32);
}
CloseHandle(hProcessSnap);
return 0;
}
[解决办法]
设置断点,单步运行,找到程序崩的地方
观察程序崩溃前各变量状态
[解决办法]
printf("process_Id is %u :\n",pe32.th32ParentProcessID);
th32ParentProcessID是dword类型,4字节的无符号整数,%u输出