В общем, проблема такова 2 модуля (exe и dll), нужно просто и быстро синхронизировать связь между ними Есть некая функция в dll, которая вызывается очень часто и должна передавать в exe значение переменной Это "нормально" работает через реестр (функция заносит данные в реестр, потом прога получает данные), но это же в корне неправильно Организовать работу через Маппинг у меня не получается, функция не обычная Идеальным вариантом, было бы что нибудь наподобе SendMessage, только проблема в том, что главная программа не имеет окна. Этот вариант возможен?
Добавить в экспорт длл функцию, которая вернёт значение переменной, экзе её вызовет, либо переменную добавить в экспорт.
Если функция именно вызывается екзешником, то в чем проблема возвращать результат в еах? А если функция вызывается сама по себе и должн при этом что-то передавать, то тут я советую тебе использовать сокеты/мейлслоты/анонимные пайпы. Если ты ответишь, что это все не подходит только потому, что ты не знаешь, что это за слова, я лично задолбаю всех модераторов, пока они тебя не забанят навечно.
шикарно секция в памяти + любой глобальный объект синхронизации если не получается, пиши почему, просто интересно такого еще не встречал
o14189 Да уж, тупее не придумать, что для пересылки данных в текущем процессе в базу данных писать.. Глобальные обьекты именованные, для одного процесса это не нужно и секции тоже не нужны. Всеголишь память копировать, даже инструкция есть - mos.
2TSS Спасибо за наводку на LPC 2MSoft Спасибо за наводку на мейлслоты и пайпы... Вроде это самый подходящий вариант Насчет бана, да хоть миллион раз задолбывай модеров, пусть меня 1000000 раз банят, только оно тебе надо?
Vayson Эээ... Про LPC я подумал, когда прочитал, что нужен аналог SendMessage, я както пропустил что речь идет об одном процессе, так что юзай обычное копирование памяти.
вообще не понятно зачем такие сложности из dll экспортируется переменная-указатель всегда кратная 2 и младший бит используется для синхронизации ;=============================== в dll .wait: call Sleep, 1 test [a], 1 jnz .wait mov [a], eax or [a], 1 ;=============================== в exe xor eax, eax test [a], 1 jz .no_data xchg eax, [a] and al, 0xFE .no_data:
Честно говоря не совсем понял, что надо, и зачем такие извращения в пределах процесса, но если оч хочется, то есть такая штука, как PostThreadMessage, и не нужно никаких окон, за обработку его должен отвечать код после GetMessage.