Dzwebs.Net

撰写电脑技术杂文十余年

rust制作带参数并有返回值的DLL动态链接库

Admin | 2023-2-8 22:17:57 | 被阅次数 | 2184

温馨提示!

如果未能解决您的问题,请点击搜索;登陆可复制文章,点击登陆

  使用rust制作DLL动态链接库,感觉比用其它语言编译,方便多了。下面给大家分享一下。

  一、创建生成DLL的项目(或者叫文件夹还比较贴切)

  首先打开CMD窗口,将路径切换到要建立项目的文件夹。比如,我的当前文件路径是:D:\MyRustProject\rustdlltest

  然后,在此当前目录中,输入命令创建DLL的项目文件夹

  cargo new makeddll --lib

  注意哦,makeddll这个是我的DLL项目文件夹名称,你可以自行修改。


  这样就得到了上图的项目文件结构。请注意,由于上述的命令中有--lib这个参数,因此,上图的src目录里面会自动生成lib.rs这个文件,而不是生成main.rs这个文件。

  二、修改Cargo.toml配置文件

  打开上图中的"Cargo.toml"这个文件,修改其部分文件内容为如下:


[dependencies]

[lib]
name = "makedll" #生成dll的文件名
crate-type = ["dylib"]

  注意:name这个是即将要生成的DLL的文件名称,crate-type这个是要生成的动态链接库的类型,我的是dylib,当然还有其它类型,如果需要,请自己修改。

  三、编写功能代码代码

  打开上图的 src 这个文件夹,里面默认有一个 lib.rs 这样的文件,注意哦,这个文件名称不能修改。现在将 lib.rs打开进行代码的编写,如下图是我的代码。


  注意看代码哦,上述的函数需要传入两个参数a和b,同时,函数执行结束还会返回一个类型为i32的(值)结果。

  为方便大家学习,粘贴代码如下:

static M:i32=13;
#[no_mangle]
pub extern fn mydllfn1(a:i32,b:i32)->i32{
println!("DLL中的计算结果:{}",a+b);
a+b+M
}

  四、使用命令将第三步的代码编译为DLL

  命令为: cargo build --release

  上述命令运行成功之后,就可以得到如下图的DLL了


  注意看上图的目录位置,生成的DLL,在target\release这个路径里面哦

  所得到的这个makedll.dll,就是本文历经第一到第四步所得到的DLL了,好了,本文到此结束。

  下次有时间,再给大家讲解一下,该makedll.dll在rust中如何调用。


该杂文来自: 最新技术

上一篇:rust之std::env获取当前工作路径、修改当前工作路

下一篇:rust enum枚举结构通过impl关键字获取其变量值的

网站备案号:

网站备案号:滇ICP备11001339号-7

版权属性:

Copyright 2007-2021-forever Inc. all Rights Reserved.

联系方式:

Email:dzwebs@126.com QQ:83539231 访问统计