结束进程的问题
我现在在编写程序的过程中发现在使用EnumProcesses()函数时,编译过程中发现错误,说是没有定义的标识符,如下:
Compiling...
ProcessDlg.cpp
F:\study\Process\ProcessDlg.cpp(180) : error C2065: 'EnumProcesses' : undeclared identifier
F:\study\Process\ProcessDlg.cpp(192) : error C2065: 'EnumProcessModules' : undeclared identifier
F:\study\Process\ProcessDlg.cpp(194) : error C2065: 'GetModuleBaseName' : undeclared identifier
Error executing cl.exe.
Process.exe - 3 error(s), 0 warning(s)
需要包含“psapi.h”文件以及“psapi.lib"文件,而我在所装的VC 6.0中和winXP 中都没有找到?
我该怎么解决这个问题呢?
(不知道有没有办法解决,如果没有办法
那位朋友有以上两个文件,能否mail一份呢,
aim1997@126.com
多谢!
[解决办法]
VC6是98年的
psapi.lib是
win2000之后的sdk加入的.
所以你得装新版的SDK或者直接用最新版的VS2008
[解决办法]
[解决办法]
- C/C++ code
HANDLE hProcessSnap = ::CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); BOOL bMore = ::Process32First(hProcessSnap, &pe32); while (bMore!=NULL) { if (pe32.th32ProcessID==processid) { HANDLE hprocess = OpenProcess(PROCESS_TERMINATE,TRUE,processid); if(!TerminateProcess(hprocess,0)) MessageBox("ff"); break; } bMore = ::Process32Next(hProcessSnap, &pe32); }
[解决办法]
[解决办法]
[解决办法]
- C/C++ code
#include <windows.h>#include <stdio.h>#include <Tlhelp32.h>int main(){ HANDLE hProcessSnap; PROCESSENTRY32 pe32; hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0); if(Process32First(hProcessSnap,&pe32)) { do { printf("Process:%s\n",pe32.szExeFile); if(!strcmp(pe32.szExeFile,"NOTEPAD.EXE")) { TerminateProcess(OpenProcess(PROCESS_ALL_ACCESS,TRUE,pe32.th32ProcessID),0); printf("TerminateProcess:%s\n",pe32.szExeFile); } }while(Process32Next(hProcessSnap,&pe32)); } CloseHandle(hProcessSnap); return TRUE;}