accessing c++ objects within c. linking error. - Programmers Heaven

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Categories

accessing c++ objects within c. linking error.

peterpan66peterpan66 Posts: 1Member
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);

//-------------------------------------[/code]
Sign In or Register to comment.