Quantcast
Channel: Programmers Heaven Forums RSS Feed
Viewing all articles
Browse latest Browse all 2703

accessing c++ objects within c. linking error.

$
0
0
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?


//-------------------------------------
//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);

//-------------------------------------


Viewing all articles
Browse latest Browse all 2703

Trending Articles