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