Перечисление потоков в Windows

Учитывая родительский класс, названный Parent и дочерний класс, названный Child, можно сделать что-то вроде этого:

class Parent {
public:
    virtual void print(int x);
}

class Child : public Parent {
    void print(int x) override;
}

void Parent::print(int x) {
    // some default behavior
}

void Child::print(int x) {
    // use Parent's print method; implicitly passes 'this' to Parent::print
    Parent::print(x);
}

Примечание, что Parent подлинное имя класса и не ключевое слово.

6
задан bdonlan 30 July 2009 в 14:16
поделиться

2 ответа

Перечисление потоков в процессе в блогах MSDN.

Фрагмент кода оттуда:

#include <stdio.h>
#include <windows.h>
#include <tlhelp32.h>

int __cdecl main(int argc, char **argv)
{
 HANDLE h = CreateToolhelp32Snapshot(TH32CS_SNAPTHREAD, 0);
 if (h != INVALID_HANDLE_VALUE) {
  THREADENTRY32 te;
  te.dwSize = sizeof(te);
  if (Thread32First(h, &te)) {
   do {
     if (te.dwSize >= FIELD_OFFSET(THREADENTRY32, th32OwnerProcessID) +
                      sizeof(te.th32OwnerProcessID)) {
       printf("Process 0x%04x Thread 0x%04x\n",
             te.th32OwnerProcessID, te.th32ThreadID);
     }
   te.dwSize = sizeof(te);
   } while (Thread32Next(h, &te));
  }
  CloseHandle(h);
 }
 return 0;
}
7
ответ дан 10 December 2019 в 02:51
поделиться

Библиотека ToolHelp дает API для создания моментальных снимков процессов и перечисления их потоков (среди других свойств). Подробности см. В MSDN .

2
ответ дан 10 December 2019 в 02:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: