Подскажите, каким образом можно реализовать вызов callback-функции динамической библиотекой. Я пробовал следующим образом:
1) в dll создаю переменную, которая хранит адрес callback-функции (по умолчанию NULL);
2) создаю в dll импортируемую функцию, при помощи которой можно установить адрес callback-функции;
3) при наступлении определённого события, если адрес callback-функции не NULL, вызвать оную.
На работает.. я так понимаю, адрес callback-функции "не актуальный" в dll. Как поступить?
Здравствуйте, Alexander, Вы писали:
A>Подскажите, каким образом можно реализовать вызов callback-функции динамической библиотекой. Я пробовал следующим образом: A>1) в dll создаю переменную, которая хранит адрес callback-функции (по умолчанию NULL); A>2) создаю в dll импортируемую функцию, при помощи которой можно установить адрес callback-функции; A>3) при наступлении определённого события, если адрес callback-функции не NULL, вызвать оную.
A>На работает..
Что именно не работает? Как это проявляется? Пример кода можешь привести?
A>я так понимаю, адрес callback-функции "не актуальный" в dll. Как поступить?
Вполне актуальный. dll грузится в адресное пространство процесса, адреса у них общие. Ты же можешь передать в dll указатель на начало буфера? Ну так функция ни чем не лучше.
Здравствуйте, Alexander, Вы писали:
A>На работает.. я так понимаю, адрес callback-функции "не актуальный" в dll. Как поступить? A>Заранее огромное спасибо, A>Alexander.
я так понял ты вызываешь калбек фкнкцию из другого процесса.
Естественно адрес не будеткоректным.
A>>На работает.. я так понимаю, адрес callback-функции "не актуальный" в dll. Как поступить? A>>Заранее огромное спасибо, A>>Alexander. D>я так понял ты вызываешь калбек фкнкцию из другого процесса. D>Естественно адрес не будеткоректным.
Если я загружаю либу через LoadLibrary(), она грузится в моё адресное пространство?
Как быть, если dll в другом процессе?
Я по дури код не сохранил.. попробую сделать ещё раз, если не выйдет, закину сюда.