функция CreateToolhelp32Snapshot.....
От: Sablezub  
Дата: 21.05.03 12:07
Оценка:
кто нибудь запускал CreateToolhelp32Snapshot в дополнительном потоке приложения.
почему то вылетает....
а в основном работает.......
Re: функция CreateToolhelp32Snapshot.....
От: Patalog Россия  
Дата: 21.05.03 13:12
Оценка:
Здравствуйте, Sablezub, Вы писали:

[]

Это, например, работает. Так шта показывай свой код, иначе непонятно.
DWORD WINAPI thread_proc(VOID* parameter)
{
    DWORD process_id = *reinterpret_cast<DWORD*>(parameter);
    HANDLE snap_shot = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, process_id);
    _ASSERTE(snap_shot != INVALID_HANDLE_VALUE);

    MODULEENTRY32 module_entry = { sizeof(module_entry) };
    BOOL res = Module32First(snap_shot, &module_entry);
    _ASSERTE(res);

    return 0;
}

int _tmain(int argc, _TCHAR* argv[])
{
    TCHAR path[MAX_PATH] = { 0 };
    UINT ret = GetSystemDirectory(path, MAX_PATH);
    _ASSERTE(ret);

    lstrcat(path, _T("\\notepad.exe"));

    STARTUPINFO si = { sizeof(si) };
    PROCESS_INFORMATION pi = { 0 };
    BOOL res = CreateProcess(path, _T(""), NULL, NULL, TRUE, 0, NULL, NULL, &si, &pi);
    _ASSERTE(res);
    CloseHandle(pi.hProcess);

    DWORD thread_id = 0;
    HANDLE thread = CreateThread(NULL, 0, thread_proc, &pi.dwProcessId, 0, &thread_id);
    _ASSERTE(thread);
    WaitForSingleObject(thread, INFINITE);

    return 0;
}
Почетный кавалер ордена Совка.
Re[2]: функция CreateToolhelp32Snapshot.....
От: Sablezub  
Дата: 21.05.03 14:14
Оценка:
да это тоже работает а вот если флаг TH32CS_SNAPPROCESS то уже вылетает...
Re[3]: функция CreateToolhelp32Snapshot.....
От: Patalog Россия  
Дата: 21.05.03 14:31
Оценка:
Здравствуйте, Sablezub, Вы писали:

[]

Не знаю что там у тебя вылетает, "это" тоже работает
DWORD process_id = *reinterpret_cast<DWORD*>(parameter);
HANDLE snap_shot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, process_id);
_ASSERTE(snap_shot != INVALID_HANDLE_VALUE);

PROCESSENTRY32 process_entry = { sizeof(process_entry) };
BOOL res = Process32First(snap_shot, &process_entry);
_ASSERTE(res);

Может таки код приведешь, чем гадать на кофейной гуще?
Почетный кавалер ордена Совка.
Re[4]: функция CreateToolhelp32Snapshot.....
От: Sablezub  
Дата: 22.05.03 10:22
Оценка:
Спасибо, я разобрался. У меня просто ошибка была 8))
Все работает отлично.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.