Мне нужно вызвать функцию-член C++ из программы C.
Я создал файлы .cpp/.h обертки в C-коде, обернув функции-члены C++.Вызов функции класса C++ класса из C (Visual Studio)
wrapper.cpp
IE-#include "wrapper.h"
extern "C" {
void wrap_member1()
{
Class::member1();
}
void wrap_member2()
{
Class::member2();
}
}
и wrapper.h:
#include <windows.h>
#include <stdio.h>
#include "../C++ class with members I need to call.h"
extern "C" void wrap_member1();
extern "C" void wrap_member2();
Моя проблема в том, когда я Скомпилируйте:
ошибка C2061: синтаксическая ошибка: 'Класс' идентификатор
Он указывает на объявление .h класса C++ как ошибку. Тот же результат, как если бы у меня не было файлов-оберток ....?
P.S. Я также удалил «Экстерн„C“» из прототипов и получил ошибку на функцию обертку:
error C2732: linkage specification contradicts earlier specification for 'wrap_member1'
Любые советы?
Кроме того: какие функции членов? статический или нестатический? Похоже, вы хотите вызвать статические функции-члены. – sellibitze