如何从C#调用本机库
How do I call a native library from C#?
通过本机代码(c++)访问c#代码的最佳解决方案是什么?
我有C#代码,我想从本机项目中调用,所以我正在考虑编写COM包装器,但我想知道.NET中是否有更好的选项(框架/设计模式/体系结构等)?
COM互操作无疑是最好的选择。它是一个已知的、受支持的框架,可以实现您想要实现的目标。
然而,还有另一种选择——可以在编译的.NET程序集中编辑IL代码,以将程序集中的方法标记为本机导出。更改的详细分类可以在这篇CodeProject文章中找到。
Robert Giesecke创建了Unmanaged Exports,以使用简单的方法属性简化此过程。NuGet包可以在这里找到。
相关文章:
- 在这种情况下,java对象是否可以调用本机函数
- 多次调用本机方法时出现致命错误
- 如何使用JNI从Android本机C++调用PackageManager.hasSystemFeature?
- 努力使用 C# 从本机 DLL 调用该方法
- Java 1.8 本机 System.load 通过 JNI 调用C++产生 TLSv1.如何获取 TLSv1.2?
- 终止调用本机代码的 .Net 线程
- Android 无法从本机代码调用 Java 方法 JNI
- 如何在本机C++中跨线程调用(在主线程上回调)
- 最佳实践:我应该使用 std::thread、boost 还是本机调用
- 在使用该名称创建变量后调用本机 C 函数
- AccessViolationException从托管C (ASP.NET的包装器)调用本机C 代码
- clr 如何使用本机 c++ dll 的引用'&'参数调用函数?
- 如何从 JNI 传递 std::list 参数来调用本机 C++ 函数
- 从 Android 中的原生 c++ 文件调用本机 opencv
- NDK - 包含一个预构建的库,并在 Android 项目中调用本机函数
- 当我将 c++ DLL(我从 c# 调用)重新生成为 /CLR(最初是本机)时,性能下降了一半
- 跟踪本机调用
- 从本机调用C#以检索字符串
- 从本机C++调用.NET dll
- 在一个程序集中从本机调用c#