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;
}
そして、これは私が最後の関数の本文の1行で受け取ったエラーです。
'initializing' : cannot convert from 'DWORD *(__cdecl *)(void)' to 'DWORD *'
1> There is no context in which this conversion is possible