我目前正在开发一个.NET项目,它通过使用C ++ / CLI项目与本机C ++库进行通信。但是,继续这个项目,我希望能够公开本机C ++代码的特定模块,最好是尽可能少的额外实现,同时保持可重用性和可伸缩性。
我已经对这两种用途进行了一些研究,但是无法解决哪种方法可以更好地解决这个问题。有人可以解释哪种方法最适合这种情况,如果有的话?
答案 0 :(得分:2)
如果要为.NET包装本机C ++代码,请使用C ++ / CLI。对于简单的C风格的API,可以使用PInvoke。
如果要为.NET和COM客户端(如Internet Explorer,MS Office,脚本语言等)包装本机C ++代码,请使用COM。
在我看来,编写COM包装器是一项更复杂的任务。但COM大师可以有另一种观点 - 这取决于你在这些技术方面的经验。