Yes, this is certainly possible. You will need to write an interface layer in C++ that declares functions with extern "C"
:
extern "C" int foo(char *bar)
{
return realFoo(std::string(bar));
}
Then, you will call foo()
from your C module, which will pass the call on to the realFoo()
function which is implemented in C++.
If you need to expose a full C++ class with data members and methods, then you may need to do more work than this simple function example.