Кто-то может сказать, правильно ли я это использую?
LPTSTR nameProc = "";
...
GetProcessImageFileName( hProcess, nameProc, 50 );
printf("name process : %s\n", nameProc);
Я не использую типы win32, 2-й аргумент GetProcessImageFileName требует LPTSTR typedef и третий принимает переменную DWORD .если не метод, может быть, я не печатаю значение nameProc правильным способом?(кстати, печатает пустую строку)
спасибо заранее.
(пожалуйста, постарайтесь не приводить меня к некоторым документам Win32 API, я не собираюсь об этом узнавать, я простонеобходимо отслеживать память использования одного процесса, поэтому я больше не буду иметь дело с типами выигрышей)
РЕДАКТИРОВАТЬ (обновленный код):
void printMemoryInfo( DWORD processID ) {
HANDLE hProcess;
TCHAR nameProc[MAX_PATH];
printf("\nProcess ID: %u\n", processID);
hProcess = OpenProcess( PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, FALSE, processID );
if (hProcess == NULL) return;
if (GetProcessImageFileName( hProcess, nameProc, sizeof(nameProc)/sizeof(*nameProc) )==0)
printf("error\n");
else printf("%s\n", nameProc);
}
int main (void) {
DWORD aProcesses[1024], cbNeeded, cProcesses;
unsigned int i;
if (!EnumProcesses( aProcesses, sizeof(aProcesses), &cbNeeded )) {
return 1;
}
cProcesses = cbNeeded/sizeof(DWORD);
for (i=0; i < cProcesses; i++) {
printMemoryInfo( aProcesses[i] );
}
return 0;
}