Подтвердить что ты не робот

Вызов С++ кода из c

есть ли способ, которым я могу вызывать код С++ из кода c

class a
{
  someFunction();
};

как вызвать someFunction() из c-кода.

в другом случае, я спрашиваю, как избежать упоминания имени здесь

С уважением Винаяка Карджиги

4b9b3361

Ответ 1

  • Сначала напишите C API-оболочку в свою библиотеку объектов. Например, если у вас есть класс Foo с помощью bar метода(), в С++ вы бы назвали его как Foo.bar(). При создании интерфейса C вы должны иметь (глобальную) функциональную панель, которая берет указатель на Foo (в идеале в виде указателя void для непрозрачности).
  • Оберните ДЕКЛАРАЦИИ для API C, которые вы экспортировали в extern "C".

(Я не помню всех проклятых операторов трансляции для С++ и не слишком ленив, чтобы посмотреть его, поэтому замените (Foo *) более конкретным, если хотите, в следующем коде.)

// My header file for the C API.
extern "C"
{
  void bar(void* fooInstance);
}

// My source file for the C API.
void bar(void* fooInstance)
{
  Foo* inst = (Foo*) fooInstance;
  inst->bar();
}