Some simple demo for x86_64:
#include <stdio.h>
#include <stdint.h>
#include <dlfcn.h>
typedef struct {
uint8_t unknown[376];
} BApplication;
struct {
void (*BApplication_Create)(BApplication *self, const char *signature);
void (*BApplication_Run)(BApplication *self);
} sLibbe;
void Init()
{
void *libbeHandle = dlopen("libbe.so", RTLD_NOW);
sLibbe.BApplication_Create = dlsym(libbeHandle, "_ZN12BApplicationC1EPKc");
sLibbe.BApplication_Run = dlsym(libbeHandle, "_ZN12BApplication3RunEv");
}
void Do()
{
BApplication app;
sLibbe.BApplication_Create(&app, "application/x-vnd.Test-App");
sLibbe.BApplication_Run(&app);
}
int main()
{
Init();
Do();
return 0;
}