есть ли способ, которым я могу вызывать код С++ из кода c
class a
{
someFunction();
};
как вызвать someFunction() из c-кода.
в другом случае, я спрашиваю, как избежать упоминания имени здесь
С уважением
Винаяка Карджиги
Ответ 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();
}