专栏名称: dotNET跨平台
专注于.NET Core的技术传播。在这里你可以谈微软.NET,Mono的跨平台开发技术。在这里可以让你的.NET项目有新的思路,不局限于微软的技术栈,横跨Windows,Linux 主流平台
今天看啥  ›  专栏  ›  dotNET跨平台

.NET9和Rust的互相调用

dotNET跨平台  · 公众号  ·  · 2024-12-07 08:15
    

文章预览

点击上方 蓝字 江湖评谈 设为关注/星标 前言 本篇先 看下 .NET9调用Rust,然后 看下 Rust调用.NET9。它们相互的一个操作。 .NET9调用Rust 新建一个Rust动态库名为net的项目,进入到项目根目录 # cargo new net --lib # cd net Cargo.toml文件添加如下代码: [lib] name = "net"             //导出库的名称 crate-type = ["cdylib"]  //c风格的导出函数 src/lib.rs文件修改如下: #[no_mangle]    //防止Rust编译器改变函数名称 pub extern "C" fn add(a: i32, b: i32) -> i32 { a + b } 生成release的二进制可执行文件 # cargo build --release linux扩展名为.so,库文件名称是lib+Cargo.toml的lib项指定的名称net。那么组合起来就是libnet.so,它即是我们需要被.NET调用的库。 生成的库的目录如下: # ls target/release/ build  deps  examples  incremental  libnet.d  libnet.so 新建一个dotnet控制台项目,Program.cs改成如下代码 ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照
总结与预览地址:访问总结与预览