Запускаю в чужем приложении свой поток. Задача - периодично вызывать функцию этого приложения (не функция экспортируемая). Столкнулся с такой проблемой. Если хотя бы раз я вызываю эту функцию - виснет GUI программы. В самой программе изначально задуманно что эта функция вызывается по нажатию ctrl+c. Думаю я не достаточно хорошо разбираюсь в синхронизации потоков - подскажите куда копать?
Наверно нужно подизасемблировать функцию. А так - фиг его знеат что там. Очевидно, что функция расчитанна на выполнение в определенним окружении/потоке и Вы это нарушаете.
Ну я ставил бряки на все API кроме функций выделения \ освобождения памяти ничего не вызывается. Прсто я искренне надеялся что мой подход не верный и сейчас мне на это укажут, но не тут то было...
Чтобы указать, надо знать что эта функция делает. Для того чтобы зависнуть и не надо API. Достаточно одной незаполненной ячейки. Например, вместо числа циклов - 0. И имеем цикл на 4 миллиарда.