Jialiang Ge has just finished a summary of solutions to invoke native C++ DLL from .NET code.
Solution 1. (Explicit) P/Invoke
Solution 2. Dynamic P/Invoke
Solution 3. Implicit P/Invoke (Use a C++/CLI wrapper)
Solution 4. Convert C++ DLL to a COM server, and call it from .NET code through .NET-COM interop
The detailed and working code samples are attached to the above article. If you have any comments or questions about the code samples, please do contact firstname.lastname@example.org. Your feedback is very important to the work.