Я запускаю программу, которая будет использовать CUPS C API, и первый пример вызывает функцию cupsEnumDests
:
#include <stdio.h>
#include <cups/cups.h>
int print_dest(void *user_data, unsigned flags, cups_dest_t *dest)
{
if (dest->instance)
printf("%s/%s\n", dest->name, dest->instance);
else
puts(dest->name);
return (1);
}
int main(void)
{
cupsEnumDests(CUPS_DEST_FLAGS_NONE, 1000, NULL, 0, 0, print_dest, NULL);
return (0);
}
Но эта функция принимает функцию C в качестве параметра, в то время какЯ использую C ++ и хочу предоставить ему метод класса.
Я пробовал cupsEnumDests(CUPS_DEST_FLAGS_NONE, 1000, NULL, 0, 0, this->MyMethod, NULL);
, но выдает ошибку
: недопустимое использование нестатической функции-члена 'int MyClass :: MyMethod (void *, unsigned int, cups_dest_t *) '
update Я обнаружил, что это работает, когда я создаю метод static
, но я бынравится использовать this->MyMethod
.