![]() |
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]() ![]() ![]() |
|
freezeman |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 175 Регистрация: 21.1.2011 Репутация: нет Всего: нет |
Всем привет!
Подскажите, пожалуйста, в чем может быть проблема... Создал в консоли событие и ожидаю ответ функцией WaitForSingleObject из другого приложения PulseEvent...все работает как задумано. Но когда перенес код в службу в отдельный поток, вылетает после WaitForSingleObject... Создавал поток в службе так:
И ещё, как удалить поток с помощью RemoteThread? |
|||
|
||||
freezeman |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 175 Регистрация: 21.1.2011 Репутация: нет Всего: нет |
Подскажите, please! Что только не перепробовал...проблема скорее всего в потоке, как решить??
|
|||
|
||||
volatile |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 13 Всего: 85 |
||||
|
||||
freezeman |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 175 Регистрация: 21.1.2011 Репутация: нет Всего: нет |
Я написал код создания потока, думаю там ошибка... Когда тот же код выполняю в основном потоке работает нормально, в созданном мною вылетает без ошибки Код:
Добавлено через 11 минут и 59 секунд Может какие-нибудь особенности есть?? Я только выяснил, что ни проекция созданная в памяти не открылась, ни событие CreateEvent... |
|||
|
||||
volatile |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 13 Всего: 85 |
||||
|
||||
Dem_max |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1780 Регистрация: 12.4.2007 Репутация: 16 Всего: 39 |
Этот код просто пипец
-------------------- Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte") |
|||
|
||||
freezeman |
|
||||
Бывалый ![]() Профиль Группа: Участник Сообщений: 175 Регистрация: 21.1.2011 Репутация: нет Всего: нет |
))))) Почему? У меня внедряется dll в процессы и перехватывает сообщения, перехватив в этом цикле получать сообщения о поступивших данных для статистики и обратно ожидать новых данных, после WaitForSingleObject полученные данные будут заноситься в массив для статистики... Есть более не пипецное решение?))) |
||||
|
|||||
Dem_max |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1780 Регистрация: 12.4.2007 Репутация: 16 Всего: 39 |
Если в этот код передастся управление то он будет работать вечно и этот поток ужи ничего не выполнит
-------------------- Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte") |
|||
|
||||
freezeman |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 175 Регистрация: 21.1.2011 Репутация: нет Всего: нет |
Я думаю, что после создания проецируемого файла и события, зайдя в цикл требуется только принимать данные, которые записываются в проец. файл и посылается событие PulseEvent из другой программы, тем самым получается бесконечные "приёмник"... Я ошибаюсь? |
|||
|
||||
Dem_max |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1780 Регистрация: 12.4.2007 Репутация: 16 Всего: 39 |
Ошибаешься, поток войдет в бесконечный цикл и больше ничего не сделает никогда, даже поток никогда не закроется корректно.
Это сообщение отредактировал(а) Dem_max - 25.3.2012, 14:42 -------------------- Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte") |
|||
|
||||
freezeman |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 175 Регистрация: 21.1.2011 Репутация: нет Всего: нет |
Ну это не главная проблема... я тестировал вроде бы работало с одним сообщением это точно, с очередью не проверил, думал все нормально... Подскажи, пожалуйста, почему когда я создаю проекцию и событие в основном потоке, то в других приложениях они благополучно открываются, а если выношу в отдельный поток, то нет... |
|||
|
||||
Dem_max |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1780 Регистрация: 12.4.2007 Репутация: 16 Всего: 39 |
-------------------- Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte") |
|||
|
||||
freezeman |
|
||||
Бывалый ![]() Профиль Группа: Участник Сообщений: 175 Регистрация: 21.1.2011 Репутация: нет Всего: нет |
Если я сделал все правильно, код ошибки 0x5 |
||||
|
|||||
volatile |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 13 Всего: 85 |
Number: 5 Constant: ERROR_ACCESS_DENIED Проблема в первом аргументе функции там должны быть нормальные аттрибуты, а не NULL Верней даже не здесь, а в основной программе, которая и создает первый евент. |
|||
|
||||
freezeman |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 175 Регистрация: 21.1.2011 Репутация: нет Всего: нет |
Представляете, создал отдельный консольный проект создал там дочерний поток и все заработало, но мне нужно именно в моей службе реализовать... просто понятия не имею в чем проблема... Как вы говорите о параметре в CreateEvent, почему же в другом проекте все заработало?? |
|||
|
||||
![]() ![]() ![]() |
Правила форума "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. |