it basically works this way:
you create an instance/object and return it's pointer to lite-c
then wrap all functions of tat class in c++ as DLLFUNC s, make it so that it takes an instance pointer and necessary parameters, and calls that function over that instance with the given paramaters.
all code below is psuedo-code:
say, this is your class
class AwesomeClass{
private: int a, int b;
public AwesomeClass(int x,int y){
a = x; b = y;
}
public void setA(int newa){
a = newa;
}
public void setb(int newb){
b = newb;
}
public int sum(){
return a+b;
}
}
this is the wrapping in c++ part:
DLLFUNC AwesomeClass* ac_create(int a, int b){
return new AwesomeClass(a,b);
}
DLLFUNC void ac_setA(AwesomeClass* ac, int newa){
ac.setA(newa);
}
DLLFUNC void ac_setB(AwesomeClass* ac, int newB){
ac.setB(newB);
}
DLLFUNC int ac_sum(AwesomeClass* ac){
return ac.sum();
}
this is how you use it in lite-c
first your Lite-c header, you may want to call it awesomeclass.h:
#define AwesomeClass int
AwesomeClass* ac_create(int a, int b);
void ac_setA(AwesomeClass* ac, int newa);
void ac_setB(AwesomeClass* ac, int newB);
int ac_sum(AwesomeClass* ac);
and then use it in lite-c:
AwesomeClass* myinstance = ac_create(3,5);
AwesomeClass* anotherinstance = ac_create(10,11);//you can create as many instances as you want
printf("%d",ac_sum(myinstance));//will show you 8
ac_setA(myinstance,5);
printf("%d",ac_sum(myinstance));//will show you 10