028-86922220

建站动态

根据您的个性需求进行定制 先人一步 抢占小程序红利时代

如何用Rust编写windows原生程序

这期内容当中小编将会给大家带来有关如何用Rust编写windows原生程序,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

我们提供的服务有:成都网站设计、成都网站制作、微信公众号开发、网站优化、网站认证、额济纳ssl等。为上千余家企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的额济纳网站制作公司

时下如果语言界要评选一个网红的话,无疑会是Rust。Rust凭借着自己出色的安全性和高效性被各大平台所接纳,Linux内核,安卓底层开发,Windows底层开发相继都采纳并给出了对应的借口。微软的Windows也是,最近发布了Rust  for Windows v0.9。更新中包括全面的调用支持,Rust可以直接原生调用任何Windows  API可以极大的拓展Rust在Windows下的开发能力和范围。

概述

本次更新提供了很多新的特性和更新,根据官方的信息包括:

环境配置

Window板条箱使用需要首先要在Windows下配置Rust开发环境,还在Rust环境的安装也非常简单傻瓜化。

安装rustup

首先从Rust官方(rust-lang.org)下载安装包rustup-init.exe(记得下载当前Windows对应的32位或者64位版本)。

如何用Rust编写windows原生程序

然后直接执行安装包,安装程序为自动配置好系统路径,以后就可以直接在命令行下使用了,比如cargo包管理器。

安装C++ build tools

Windows下的rust编译还依赖Microsoft C++ build  tools工具,不安装,后面在编译时,会报错说“link.exe”无法找到。

如何用Rust编写windows原生程序

需要从微软VS下载出下载vs_buildtools,选中C++工具和Windows SDK组件并安装。

如何用Rust编写windows原生程序

安装VS Code及其Rust插件

另外,为了方便一般建议安装VS Code及其Rust插件:

如何用Rust编写windows原生程序

crates-io国内源

配置Rust 板条箱的国内源,由于官方crates-io国内下载太慢,甚至容易失败,所以先配置国内源(比如ustc)

在用户目录C:\Users\CC\.cargo创建一个config文件,内容配置为:

如何用Rust编写windows原生程序

示例

首先,通过cargo创建一个新的Rust项目:

cargo new hello-chongchong

以上命令这将创建一个新目录并hello-chongchong创建基本项目框架目录和文件。

进入该目录,并使用--lib 命令嵌套创建依赖的库项目:

cargo new --lib bindings

然后通过

code .

在VS Code打开该项目,截图如下:

如何用Rust编写windows原生程序

修改项目Cargo.toml文件中,添加以下依赖项,依赖项告诉Cargo现在它依赖于新创建的win库。

[dependencies] bindings = {path = " bindings"}

现在,在win文件夹下的Cargo.toml文件中,添加对Windows板条箱的依赖项,版本指定为最新的0.9.1。这样就可以通过允许Cargo打包下载,构建和缓存Windows支持。

[dependencies] windows = "0.9.1" [build-dependencies] windows = "0.9.1"

然后在bindings目录下创建一个新的源文件build.rs,并输入一下源码:

// build.rs fn main() { windows::build!( Windows::Win32::WindowsAndMessaging::MessageBoxA ); }

在代码中,使用 windows::build 宏指定要使用的类型,可以再次列出需要使用的所API,Windows板条箱将直接元数据生成必要的绑定。

然后修改win/src目录中为以下代码:

windows::include_bindings!();

这样,就可以在主项目main.rs文件中,任意调用指定的Windows API。此处我们创建一个“Hello Chongchong!”消息对话框。

use bindings::Windows::Win32::WindowsAndMessaging::{MessageBoxA, MESSAGEBOX_STYLE}; fn main() { unsafe { MessageBoxA(None, "Hello Chongchong!", "Message", MESSAGEBOX_STYLE::MB_OK); } }

注意,任何Win32函数和COM接口方法,都需要用unsafe方式调用。

然后通过cargo build编译该项目,并通过cargo run 会弹出一下对话框。

如何用Rust编写windows原生程序

新版本的板条箱中再带了几个例子,可以在windows-rs项目仓库的examples目录。

Rust for Windows  给rust在Windows开发应用带来了福音,虽然一些API可能早就被广泛地使用了,但是现在有了官方的支持,可以在文档、示例和稳定性等各方面都有极大的改善。

上述就是小编为大家分享的如何用Rust编写windows原生程序了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注创新互联行业资讯频道。


本文名称:如何用Rust编写windows原生程序
网页链接:http://www.tsicrk.com/article/joesse.html

其他资讯

让你的专属顾问为你服务

0.6019s