如何从C#调用本机库

How do I call a native library from C#?

本文关键字:本机 调用      更新时间:2023-10-16

通过本机代码(c++)访问c#代码的最佳解决方案是什么?

我有C#代码,我想从本机项目中调用,所以我正在考虑编写COM包装器,但我想知道.NET中是否有更好的选项(框架/设计模式/体系结构等)?

COM互操作无疑是最好的选择。它是一个已知的、受支持的框架,可以实现您想要实现的目标。

然而,还有另一种选择——可以在编译的.NET程序集中编辑IL代码,以将程序集中的方法标记为本机导出。更改的详细分类可以在这篇CodeProject文章中找到。

Robert Giesecke创建了Unmanaged Exports,以使用简单的方法属性简化此过程。NuGet包可以在这里找到。