Hello everybody,
My goal is accessing c++ objects within c by using wrapper and externals. To get the pointer to the c++ object I use a type "void *".
But i get an error while linking: undefined reference to "create_mycpp".
Does anybody has an idea what the problem is? Or should I take an other way to access c++ objects?
Code:
//-------------------------------------
//mycpp.cpp
#include "mycpp.h"
Mycpp::void func(int i)
{
i += 1;
}
//-------------------------------------
//mycpp.h
#ifndef MYCPP_H
#define MYCPP_H
#endif
class Mycpp {
public:
void func(int);
}
//-------------------------------------
//mywrapper.h
#ifndef MYWRAPPER_H
#define MYWRAPPER_H
#endif
typedef void * tMYCPP;
tMYCPP create_mycpp();
void mycpp_func(tMYCPP, int);
//-------------------------------------
//mywrapper.cpp
#include "mywrapper.h"
#include "mycpp.h"
#ifdef __cplusplus
extern "C" {
void * create_mycpp() {
return (tMYCPP)new Mycpp();
}
void mycpp_func(void * _mycpp, int _value) {
((Mycpp*) _mycpp)->func(_value);
}
}
#endif
//-------------------------------------
//main.c
#include "mywrapper.h"
tMYCPP aCpp = create_mycpp();
mycpp_func(aCpp, 2);
//-------------------------------------