C++ Services

C++ Services must comply with these rules:

Export all service methods in the shared library.
The Service method must either take a char*, or a char** for multiple arguments. Alternatively, if using the macro it can take a std::string or a vector of std::strings.
The method returns data through a char** argument, which is set to the returned data. Alternatively, if using the macro it returns a std::string.
Overloaded methods cannot be used.