网易首页 > 网易号 > 正文 申请入驻

Window-rs——用Rust编写windows原生程序

0
分享至

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

概述

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

添加了对Win32和COM API的支持,统一了Windows板条箱。这些Windows API有新的项目win32metadata来添加。为了方便和统一,项目名称由“Rust/WinRT”更改为“Rust for Windows”。

添加了几个示例 ,演示了如何调用各种Windows API(包括Win32,COM和WinRT API)。

Windows 板条箱在crates.io发布,现在支持MIT或Apache双开源版权。

内置生成的binding,无需再手动编写。

Windows支持在Linux上构建。

Win32 API的许多改进和修复,例如对数组类型,各种字符串类型和更新的元数据的支持。

添加了对COM接口的更自然和惯用的支持,例如返回值,以及对涉及C样式联合和嵌套类型之类的其他API的支持。

缩短了构建时间并改善了错误处理。

保留原始的API大小写,这会影响使用Windows crate的现有代码。通过类似于QueryInterface的函数转换为通用函数,从而可以更安全,更方便地调用许多与COM相关的函数。

环境配置

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

安装rustup

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

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

安装C++ build tools

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

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

安装VS Code及其Rust插件

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

crates-io国内源

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

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

示例

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

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

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

然后通过

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

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

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

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

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

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

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

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

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

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

总结

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

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
腾讯掉队,马化腾戳破真相

腾讯掉队,马化腾戳破真相

虎嗅APP
2026-05-15 16:31:10
一家三口险丧命!开车从深圳回老家路上,全车人陷入昏迷,孩子口吐白沫!

一家三口险丧命!开车从深圳回老家路上,全车人陷入昏迷,孩子口吐白沫!

深圳晚报
2026-05-15 23:18:04
你最接近生理极限的一次经历是什么?网友分享让人目瞪口呆!

你最接近生理极限的一次经历是什么?网友分享让人目瞪口呆!

夜深爱杂谈
2026-04-09 19:39:13
全网骂翻!郭富城怎么也想不到,方媛一档综艺败光了他的路人缘

全网骂翻!郭富城怎么也想不到,方媛一档综艺败光了他的路人缘

乡野小珥
2026-05-16 03:41:22
国家税务总局成都市税务局原二级巡视员李平接受审查调查

国家税务总局成都市税务局原二级巡视员李平接受审查调查

界面新闻
2026-05-15 15:40:24
深交所有史以来最大规模IPO正式获证监会注册,华润新能源来袭!

深交所有史以来最大规模IPO正式获证监会注册,华润新能源来袭!

叩叩财讯
2026-05-16 00:05:35
38球35助攻!枪手今夏挖角当世天才边锋 预估8000万欧 3豪门来抢

38球35助攻!枪手今夏挖角当世天才边锋 预估8000万欧 3豪门来抢

零度眼看球
2026-05-16 07:37:19
上市不足一月股价涨超8倍!盛合晶微再次提示风险:公司营收规模与大型封测企业相比仍较小

上市不足一月股价涨超8倍!盛合晶微再次提示风险:公司营收规模与大型封测企业相比仍较小

澎湃新闻
2026-05-15 21:38:27
一年开销600万!脱离王室第4年,梅根终于活成了哈里的“老妈子”

一年开销600万!脱离王室第4年,梅根终于活成了哈里的“老妈子”

白露文娱志
2026-05-15 16:25:04
争议!国少挺进亚洲四强,名记被打脸,董路为己正名,完爆孙继海

争议!国少挺进亚洲四强,名记被打脸,董路为己正名,完爆孙继海

阿衃体育
2026-05-16 04:55:23
四季凭什么被懂王选中?

四季凭什么被懂王选中?

Hotelers酒店圈儿
2026-05-14 16:45:45
当着全球的面,朝鲜立最高铁律:只要我被“斩首”,核弹立刻升空

当着全球的面,朝鲜立最高铁律:只要我被“斩首”,核弹立刻升空

小噎论事
2026-05-12 15:24:59
国足3-1沙特,晋级亚洲杯4强,球员评分出炉:4人高分,万项领衔

国足3-1沙特,晋级亚洲杯4强,球员评分出炉:4人高分,万项领衔

等等talk
2026-05-16 04:16:12
乌克兰低成本武器多由手工焊接或胶带缠绕 防长:都是消耗品,随时会被击落或炸毁

乌克兰低成本武器多由手工焊接或胶带缠绕 防长:都是消耗品,随时会被击落或炸毁

红星新闻
2026-05-15 18:47:49
夫妻性生活别急着进入!学会这招“延迟满足”,爽感增倍

夫妻性生活别急着进入!学会这招“延迟满足”,爽感增倍

精彩分享快乐
2026-05-13 12:05:07
白宫的官方镜头,死死钉在了中国解放军仪仗队身上!

白宫的官方镜头,死死钉在了中国解放军仪仗队身上!

音乐时光的娱乐
2026-05-15 12:02:04
看到中国给了特朗普最高礼遇,欧盟干脆做了最坏的打算?

看到中国给了特朗普最高礼遇,欧盟干脆做了最坏的打算?

春之寞陌
2026-05-16 07:02:08
特朗普访华,美方“二号位”是他

特朗普访华,美方“二号位”是他

中国新闻周刊
2026-05-15 12:44:08
“摸奶子”擦边神反转,OPPO公关部有高人指点

“摸奶子”擦边神反转,OPPO公关部有高人指点

首席品牌观察
2026-05-14 16:52:18
惊现夜市闹剧!30岁高颜值少妇当众脱内裤套男子嘴,丈夫全程目睹

惊现夜市闹剧!30岁高颜值少妇当众脱内裤套男子嘴,丈夫全程目睹

老猫观点
2026-05-15 07:34:04
2026-05-16 08:00:49
世故
世故
每日分享正能量的情感文章
2851文章数 3421关注度
往期回顾 全部

科技要闻

直降千元起步!苹果华为率先开启618让利

头条要闻

特朗普访问中国43个小时行程密集紧凑 全程回顾

头条要闻

特朗普访问中国43个小时行程密集紧凑 全程回顾

体育要闻

德约科维奇买的球队,从第6级联赛升入法甲

娱乐要闻

方媛为何要来《桃花坞6》没苦硬吃?

财经要闻

腾讯掉队,马化腾戳破真相

汽车要闻

高尔夫GTI刷新纽北纪录 ID. Polo GTI迎全球首秀

态度原创

游戏
家居
数码
时尚
本地

《街霸6》春丽新品来了!招牌肉腿完美还原

家居要闻

110㎡淡而有致的生活表达

数码要闻

ROG枪神10 Plus超竞版游戏本发布,320W巅峰释放

顶级团队拍出来的作品不如素人,问题出在哪儿了?

本地新闻

用苏绣的方式,打开江西婺源

无障碍浏览 进入关怀版