Я пишу Dll-плагин, который динамически подгружает MFC-библиотеку (dll). Необходимо из MFC-библиотеки вызывать функцию главной dll-ки. Через экспортируемую функцию MFC-библиотеки я передаю ей адрес необходимой функции, и пытаюсь вызвать эту функцию по нажатию кнопки на форме MFC. Выбрасывается исключение (обращение по указанному адресу недопустимо), в результате программа закрывается. Есть ли какие то ограничения по передаче адресов функций? Или что то другое не так?
Здравствуйте, JekSoft, Вы писали:
JS>Здравствуйте!
Здравствуй!
JekVOID_INT_INT_FUNC уже означает "указатель на функцию..."
Ты же зачем-то принимаешь в SetCallbacks тип
JekVOID_INT_INT_FUNC**
(указатель на указатель на указатель на функцию)
А хранишь
JekVOID_INT_INT_FUNC*
(указатель на указатель на функцию)
Здравствуйте, VoidEx, сделал так как вы сказали... та же ошибка:
---------------------------
grym.exe — Ошибка приложения
---------------------------
Инструкция по адресу "0x6aec8b55" обратилась к памяти по адресу "0x6aec8b55". Память не может быть "read".
Здравствуйте, JekSoft, Вы писали:
JS>Здравствуйте, VoidEx, сделал так как вы сказали... та же ошибка: JS>--------------------------- JS>grym.exe — Ошибка приложения JS>--------------------------- JS>Инструкция по адресу "0x6aec8b55" обратилась к памяти по адресу "0x6aec8b55". Память не может быть "read".
Ну кроме этой опечатки ничего не вижу, свежий взгляд нажуен кого-нибудь ещё
Здравствуйте, VoidEx, Вы писали:
VE>Ну кроме этой опечатки ничего не вижу, свежий взгляд нажуен кого-нибудь ещё VE>
VE>SetCallbacks(&MoveTracker1);
VE>
А может проблема заключаться в том, что в MFC какой нибудь свой менеджер памяти, и он теряет ссылку на функцию? Т.к. ссылка хранится внутри класса окна?
Может быть, прислать архив с проектом, чтобы код можно было посмотреть нормально?
Здравствуйте, JekSoft, Вы писали:
JS>А может проблема заключаться в том, что в MFC какой нибудь свой менеджер памяти, и он теряет ссылку на функцию? Т.к. ссылка хранится внутри класса окна? JS>Может быть, прислать архив с проектом, чтобы код можно было посмотреть нормально?
Архив с проектом можно, но только если вечером, так как сейчас на работе.