Информация об изменениях

Сообщение Re: вызовь метода класса из С от 12.11.2020 12:24

Изменено 12.11.2020 12:29 rg45

Re: вызовь метода класса из С
Здравствуйте, sergey2b, Вы писали:

S>Подскажите пожалуйста как можно передать указатель на метод класса в Си

S>а потом вызывать этот метод из Си

Для вызова функции-члена (метода) класса необходимо иметь указатель на объект объект класса, для которого вызывается этот метод. Для этого библиотека должна поддерживать передачу кастомного указателя в процедуру обратного вызова. В таком случае задача решается тривиально — кастомный указатель преобразуется в указатель на объект нужного типа, для которого вызывается нужный метод. Без поддержки же со стороны библиотеки нормального решения нет, остаются извращения со статическими переменными с прилагающимся геморроем обеспечения потокобезопасности.
Re: вызовь метода класса из С
Здравствуйте, sergey2b, Вы писали:

S>Подскажите пожалуйста как можно передать указатель на метод класса в Си

S>а потом вызывать этот метод из Си

Для вызова нестатической функции-члена (метода) класса необходимо иметь указатель на объект класса, для которого вызывается этот метод. Для этого библиотека должна поддерживать передачу кастомного указателя в процедуру обратного вызова. В таком случае задача решается тривиально — кастомный указатель преобразуется в указатель на объект нужного типа, для которого вызывается нужный метод. Без поддержки же со стороны библиотеки нормального решения нет, остаются извращения со статическими переменными с прилагающимся геморроем обеспечения потокобезопасности.