Как вызвать C++ метод класса, callback из библиотеки на C?
Здравствуйте. С праздником, коллеги.
Имеется библиотека на C, которая в отдельном потоке читает данные с COM порта и формирует из них пакеты данных.
Есть C++ приложение на wxWidgets, которое должно получать от библиотеки данные по мере их накопления.
В классе, описывающем фрейм wxWidget сделал статическое свойство, которое хранит указатель на объект этого класса (чтоб в стат. методе можно было работать в контексте объекта) и статический метод, который и передаётся в библиотеку, в качестве указателя на callback функцию. Всё бы ничего, но почему-то при обращении к элементам фрейма из callback функции, приложение крашится с сигналом SIGABRT. Как можно решить данную проблему? Спасибо.
Насколько я помню, wxWidgets не умеет обрабатывать вызовы функций из других потоков.
Скорее всего это не проблема взаимодействия C и C++. Для уверенности запустите приложение в gdb и покажите стектрейс в момент получения сигнала.