DllImport can only be used to import C functions, not C++ class methods (even if they are static).
If its a c++ com object if you register it with regsvr32 you can add a reference to the dll in visual studio com references tab and usually visual studio creates an dll (I think its called a runtime callable wrapper) which you can see is created with the nameoflibrary.interop.dll. So MyExecRefsDll.dll if were a com object would become MyExexRefs.Interop.dll. But when you add the reference visual studio usually does this for you automatically in managed code. If you create a c++ dll as a com object by using atl template in c++ it is easier to access from dotnet (Iam referencing unmanaged c++ code from a dll which references another dll file (No code copied from the second dll I just reference the tlb, lib, the dll file, and visual studio does everything else.
Take a look at this tutorial it makes the process as clear as a crystal ball:
http://www.codeproject.com/Articles/505791/A-Beginner-Tutorial-for-Writing-Simple-COM-ATL-DLL?q=creating+an+atl+dll+c%2b%2b
Just remember to find the tlb and lib (usually in the folder where the other dll is created after compiling. ) and reference them by right clicking in solution explorer and add->existing item for the second dll referenced from the main dll. The tlb and lib allow you to call functions from the dll (always copy new versions of them into your projects folder everytime you update the code to the second dll).
show data- have you triedConsole.WriteLine(msg)after your call toProcess_Read(..)?