I am using gnu c compiler on centos 6, and the c program loads the shared library in the code dynamically.
You must declare your function to be useable in C:
extern "C" void foo(int x, char y);
Note that you can't do overloading or any of the other features that C++ gives you. (This is because of name mangling.)