Whoa... ok, firedraco's correct, but it's never going to work.
I'm assuming you are trying to refer to ISnakeAlgo::getInstance() when you are looking up the symbol.
But this function name has been mangled by the compiler, so I can guarantee that dlsym() will return
NULL.
You are going to need to make a free function declared with extern "C" in order for this to work.
1 2 3 4
// In one of your .so header files:
extern"C" {
ISnakeAlgo* getInstance();
};
And now you'll be able to look up "getInstance" with dlsym.