![]() |
|
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]()
|
|
| anwe |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 748 Регистрация: 2.9.2006 Репутация: 1 Всего: 23 |
В каких случаях "лучше\хуже" применять CreateThread и CreateRemoteThread, ведь CreateThread та же CreateRemoteThread, только с хэндлом вызывающего процесса?
Предполагаю ответ типа "В зависимости от того, что ты хочешь", " Как понять лучше\хуже" и т. д. Поэтому конкретный вопрос: запустить поток в чужом процессе можно и через CreateRemoteThread, внедрившись в процесс, и через CreateThread, что находится в подгружаемой моей DLL'ке. Какой вариант предпочтительнее (с любых аспектов)? |
|||
|
||||
| 586 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2243 Регистрация: 8.5.2006 Репутация: 39 Всего: 146 |
||||
|
||||
| anwe |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 748 Регистрация: 2.9.2006 Репутация: 1 Всего: 23 |
Это я понимаю. Или это и есть ответ что предпочтительнее в этом аспекте?
Если ответ, то что еще? |
|||
|
||||
| W4FhLF |
|
|||
![]() found myself ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2831 Регистрация: 2.12.2006 Репутация: 12 Всего: 121 |
Второй вариант конечно лучше. Это правильнее с т.з. логики системы, требует меньше кода и прав.
-------------------- "Бог умер" © Ницше "Ницше умер" © Бог |
|||
|
||||
| anwe |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 748 Регистрация: 2.9.2006 Репутация: 1 Всего: 23 |
Я так примерно и предполагал. Но "усилился" вопрос а когда применяется (стоит применять Remote?
|
|||
|
||||
| asd |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 89 Регистрация: 25.6.2006 Репутация: 1 Всего: 1 |
листинг ф-ии CreateThread: MOV EDI,EDI PUSH EBP MOV EBP,ESP PUSH DWORD PTR SS:[EBP+1C] PUSH DWORD PTR SS:[EBP+18] PUSH DWORD PTR SS:[EBP+14] PUSH DWORD PTR SS:[EBP+10] PUSH DWORD PTR SS:[EBP+C] PUSH DWORD PTR SS:[EBP+8] PUSH -1 CALL kernel32.CreateRemoteThread POP EBP RETN 18 Это всего лишь заглушка для CreateRemoteThread, которыя добавляет первым параметром -1. Так что для своего процесса разницы нет. Разве что быстрее будет |
|||
|
||||
| anwe |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 748 Регистрация: 2.9.2006 Репутация: 1 Всего: 23 |
А ты прям думаешь я не знаю и не видел этого. Я же писал:
Мне интересно другое. Если
то когда правильнее первый вариант, когда стоит применять Remote? |
||||
|
|||||
| maxdiver |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 381 Регистрация: 29.1.2008 Где: Саратов Репутация: нет Всего: 18 |
Разве ответ не очевиден?? Логично создавать потоки в своем процессе через CreateThread, а в чужом - через CreateRemoteThread. Конечно, можно создавать потоки и в своем процессе через Remote, но это как-то нелогично совершенно, да и к тому же в 9x этой функции нет.
|
|||
|
||||
| ppoger |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 31 Регистрация: 14.7.2007 Репутация: нет Всего: нет |
начнем с того, что напрямую вызывать функцию CreateThread вообще нелогично
кому интересно тот прочитает сам. |
||||
|
|||||
| anwe |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 748 Регистрация: 2.9.2006 Репутация: 1 Всего: 23 |
||||
|
||||
| ppoger |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 31 Регистрация: 14.7.2007 Репутация: нет Всего: нет |
||||
|
||||
![]()
|
| Правила форума "C/C++: Системное программирование и WinAPI" | |
|
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |