看书上的拍摄进程快照 代码没有报错 但是启动就提示 程序停止运行 老哥能看看为啥吗
#include
#include // 快照函数头文件
int main(int argc, char* argv[])
{
PROCESSENTRY32 pe32;
// 使用这个结构之前,先设置它的大小
pe32.dwSize = sizeof(pe32);
HANDLE hProcessSnap = ::CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
if (hProcessSnap == INVALID_HANDLE_VALUE)
{
printf("CreatToolhelp32Snapshot 调用失败!\n");
return -1;
}
// 遍历进程快照,轮流显示每个进程的信息
BOOL bMore = ::Process32First(hProcessSnap, &pe32);
while (bMore)
{
printf("进程名称: %s\n", pe32.szExeFile);
printf("进程 I D : %s\n", pe32.th32ProcessID);
bMore = ::Process32Next(hProcessSnap, &pe32);
}
// 不要忘记清除snaps hoot对象
::CloseHandle(hProcessSnap);
return 0;
}
运行结果及报错内容
已启动生成...
1>------ 已启动生成: 项目: ConsoleApplication1, 配置: Debug x64 ------
1>ConsoleApplication1.cpp
1>C:\VisualStudio IDE\VC\Tools\MSVC\14.32.31326\include\limits.h(70,5): warning C4668: 没有将“__STDC_WANT_SECURE_LIB__”定义为预处理器宏,用“0”替换“#if/#elif”
1>C:\VisualStudio IDE\VC\Tools\MSVC\14.32.31326\include\xmemory(154,5): warning C4365: “参数”: 从“long”转换到“unsigned int”,有符号/无符号不匹配
1>C:\VisualStudio IDE\VC\Tools\MSVC\14.32.31326\include\xmemory(164,5): warning C4365: “参数”: 从“long”转换到“unsigned int”,有符号/无符号不匹配
1>C:\VisualStudio IDE\VC\Tools\MSVC\14.32.31326\include\atomic(206,9): warning C4365: “参数”: 从“long”转换到“unsigned int”,有符号/无符号不匹配
1>C:\VisualStudio IDE\VC\Tools\MSVC\14.32.31326\include\atomic(221,9): warning C4365: “参数”: 从“long”转换到“unsigned int”,有符号/无符号不匹配
1>C:\VisualStudio IDE\VC\Tools\MSVC\14.32.31326\include\atomic(237,9): warning C4365: “参数”: 从“long”转换到“unsigned int”,有符号/无符号不匹配
1>C:\Windows Kits\10\Include\10.0.19041.0\um\winbase.h(7679,48): warning C5039: “TpSetCallbackCleanupGroup”: 可能引发函数的指针或引用传递到 -EHc 下的外部 "C" 函数。如果此函数引发异常,则可能发生未定义的行为。
1>C:\Windows Kits\10\Include\10.0.19041.0\um\winioctl.h(10326,22): warning C4668: 没有将“_WIN32_WINNT_WIN10_TH2”定义为预处理器宏,用“0”替换“#if/#elif”
1>C:\Windows Kits\10\Include\10.0.19041.0\um\winioctl.h(10332,22): warning C4668: 没有将“_WIN32_WINNT_WIN10_RS1”定义为预处理器宏,用“0”替换“#if/#elif”
1>C:\Windows Kits\10\Include\10.0.19041.0\um\winioctl.h(10337,22): warning C4668: 没有将“_WIN32_WINNT_WIN10_TH2”定义为预处理器宏,用“0”替换“#if/#elif”
1>C:\Windows Kits\10\Include\10.0.19041.0\um\winioctl.h(10341,22): warning C4668: 没有将“_WIN32_WINNT_WIN10_TH2”定义为预处理器宏,用“0”替换“#if/#elif”
1>C:\Windows Kits\10\Include\10.0.19041.0\um\winioctl.h(10348,22): warning C4668: 没有将“_WIN32_WINNT_WIN10_RS2”定义为预处理器宏,用“0”替换“#if/#elif”
1>C:\Windows Kits\10\Include\10.0.19041.0\um\winioctl.h(10358,22): warning C4668: 没有将“_WIN32_WINNT_WIN10_RS2”定义为预处理器宏,用“0”替换“#if/#elif”
1>C:\Windows Kits\10\Include\10.0.19041.0\um\winioctl.h(10362,22): warning C4668: 没有将“_WIN32_WINNT_WIN10_TH2”定义为预处理器宏,用“0”替换“#if/#elif”
1>C:\Windows Kits\10\Include\10.0.19041.0\um\winioctl.h(10367,22): warning C4668: 没有将“_WIN32_WINNT_WIN10_RS3”定义为预处理器宏,用“0”替换“#if/#elif”
1>C:\Windows Kits\10\Include\10.0.19041.0\um\winioctl.h(10374,22): warning C4668: 没有将“_WIN32_WINNT_WIN10_RS4”定义为预处理器宏,用“0”替换“#if/#elif”
1>C:\Windows Kits\10\Include\10.0.19041.0\um\winioctl.h(10377,22): warning C4668: 没有将“_WIN32_WINNT_WIN10_RS1”定义为预处理器宏,用“0”替换“#if/#elif”
1>C:\Windows Kits\10\Include\10.0.19041.0\um\winioctl.h(10380,22): warning C4668: 没有将“_WIN32_WINNT_WIN10_RS4”定义为预处理器宏,用“0”替换“#if/#elif”
1>C:\Windows Kits\10\Include\10.0.19041.0\um\winioctl.h(10385,22): warning C4668: 没有将“_WIN32_WINNT_WIN10_RS1”定义为预处理器宏,用“0”替换“#if/#elif”
1>C:\Windows Kits\10\Include\10.0.19041.0\um\winioctl.h(10388,22): warning C4668: 没有将“_WIN32_WINNT_WIN10_RS5”定义为预处理器宏,用“0”替换“#if/#elif”
1>C:\Windows Kits\10\Include\10.0.19041.0\um\winioctl.h(10588,22): warning C4668: 没有将“_WIN32_WINNT_WIN10_RS2”定义为预处理器宏,用“0”替换“#if/#elif”
1>C:\Windows Kits\10\Include\10.0.19041.0\um\winioctl.h(10612,22): warning C4668: 没有将“_WIN32_WINNT_WIN10_RS5”定义为预处理器宏,用“0”替换“#if/#elif”
1>C:\Windows Kits\10\Include\10.0.19041.0\um\winioctl.h(14093,22): warning C4668: 没有将“_WIN32_WINNT_WIN10_RS5”定义为预处理器宏,用“0”替换“#if/#elif”
1>C:\Windows Kits\10\Include\10.0.19041.0\um\winioctl.h(14296,22): warning C4668: 没有将“_WIN32_WINNT_WIN10_RS5”定义为预处理器宏,用“0”替换“#if/#elif”
1>C:\Windows Kits\10\Include\10.0.19041.0\um\winioctl.h(14399,22): warning C4668: 没有将“_WIN32_WINNT_WIN10_RS5”定义为预处理器宏,用“0”替换“#if/#elif”
1>C:\Windows Kits\10\Include\10.0.19041.0\um\winioctl.h(14495,21): warning C4668: 没有将“_WIN32_WINNT_WIN10_RS5”定义为预处理器宏,用“0”替换“#if/#elif”
1>C:\Windows Kits\10\Include\10.0.19041.0\um\winioctl.h(14599,22): warning C4668: 没有将“_WIN32_WINNT_WIN10_RS5”定义为预处理器宏,用“0”替换“#if/#elif”
1>C:\Windows Kits\10\Include\10.0.19041.0\um\winioctl.h(15350,23): warning C4668: 没有将“_WIN32_WINNT_WIN10_RS2”定义为预处理器宏,用“0”替换“#if/#elif”
1>C:\Windows Kits\10\Include\10.0.19041.0\um\winioctl.h(15406,22): warning C4668: 没有将“_WIN32_WINNT_WIN10_RS2”定义为预处理器宏,用“0”替换“#if/#elif”
1>C:\Windows Kits\10\Include\10.0.19041.0\um\winioctl.h(15525,22): warning C4668: 没有将“_WIN32_WINNT_WIN10_RS3”定义为预处理器宏,用“0”替换“#if/#elif”
1>C:\Windows Kits\10\Include\10.0.19041.0\um\winioctl.h(15675,22): warning C4668: 没有将“_WIN32_WINNT_WIN10_RS4”定义为预处理器宏,用“0”替换“#if/#elif”
1>C:\Windows Kits\10\Include\10.0.19041.0\um\winioctl.h(15688,22): warning C4668: 没有将“_WIN32_WINNT_WIN10_RS4”定义为预处理器宏,用“0”替换“#if/#elif”
1>C:\Windows Kits\10\Include\10.0.19041.0\um\winioctl.h(15916,22): warning C4668: 没有将“_WIN32_WINNT_WIN10_RS1”定义为预处理器宏,用“0”替换“#if/#elif”
1>C:\Windows Kits\10\Include\10.0.19041.0\um\TlHelp32.h(71,26): warning C4820: “tagHEAPLIST32”: 在 <未知>“null”后添加了“63851384”字节填充
1>“C:\VisualStudio IDE\VC\Tools\MSVC\14.32.31326\bin\HostX64\x64\CL.exe”中的内部编译器错误
1> 请选择 Visual C++
1>“帮助”菜单上的“技术支持”命令,或打开技术支持帮助文件来获得详细信息
1>C:\VisualStudio IDE\MSBuild\Microsoft\VC\v170\Microsoft.CppCommon.targets(700,5): error MSB6006: “CL.exe”已退出,代码为 -1073741819。
1>已完成生成项目“ConsoleApplication1.vcxproj”的操作 - 失败。
========== “生成”: 0 成功,1 失败,0 更新,0 已跳过 ==========
教材是老教材