I would like to keep the C++ portion as simple as possible - is there a way to avoid all the MFC stuff? I simply want the ability to pass in Rhino objects in (e.g. mesh objects) for processing, there is no GUI or plugin related elements (commands etc) at all.
I have no knowledge of C++ plugins, I have only ever done C# and F#, that is .net, plugins.
But RhinoCycles makes the necessary data transformation so that Cycles can use it. This processing is done in C#, then passed on the C++ via the wrapper C API and P/Invoke.
When doing a C# plugin you’ll be creating the GUI part with Eto.Forms, which Rhino itself uses for much of its GUI on both Windows and MacOS. RhinoCycles uses it for instance to provide the settings page in the options dialog for Rhino Render.