我正在寻找从使用 C++ 的函数返回所有当前正在运行的进程 ID 的数组。
我正在使用以下函数枚举列表:
DWORD* xEnumProcs(){
PROCESSENTRY32 pe32;
HANDLE snapshot = NULL;
DWORD pid[1024];
DWORD* pointer;
pointer = pid;
int I = 0;
snapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
if (snapshot != INVALID_HANDLE_VALUE) {
pe32.dwSize = sizeof(PROCESSENTRY32);
if (Process32First(snapshot, &pe32)) {
do {
pid[I] = pe32.th32ProcessID;
I++;
} while (Process32Next(snapshot, &pe32));
}
CloseHandle(snapshot);
}
return pointer;
}
我不确定这是否正确完成。我正在尝试在另一个函数中使用这个数组,如下所示:
void HandleProcs(){
DWORD* xNewProcs = xEnumProcs;
}
这是我在最后一个函数正文中的一行收到的错误:
'initializing' : cannot convert from 'DWORD *(__cdecl *)(void)' to 'DWORD *'
1> There is no context in which this conversion is possible