不推荐用C++类实际上是因为对于C#来说C++是unsafe的。如果你的代码需要大量使用C++类,C++/CLI是最佳选择。原来的C++代码可以不动,所有要用到的类套一层代理类就可以了。既是类型安全的,性能也接近native。
写成C函数再用PInvoke不要太ugly,很容易玩脱。那种写法是给C用的。