大致介绍
在写C#程序时经常有与本地代码(C/C++)代码交互的需求。微软提供了许多种方式供我们选择,
最常用的有以下三种(A->B指A可以引用B):
- P/Invoke (Platform Invoke):平台调用,是一种用于和非托管函数进行交互的技术,
在调用Windows API的时候有大量的运用。特点是无需编写兼容层代码即可使用。 - C++ Interop:托管C++,使用C++/CLI (Common Language Infrastructure)语言,
特点是可以将托管代码和非托管代码写在一个文件/程序集里,从而使得它十分灵活,它本质上还是平台调用。 - COM (Component Object Model):组件对象模型,是微软早在.NET出现之前就提出的一种Windows开发技术,
现在Windows中到处都有它参与。虽然它是很老的技术,但在最新的技术中也可以看到它的身影(如WinUI3)。
需不需要写兼容层代码取决于原来的代码有没有使用COM,如Win32就没有使用,而WinRT使用了。
2024年1月10日大约 4 分钟