Win32 API 是被诸多 Windows 桌面应用程序所使用的经典原生开发接口,并且支持直接访问相关硬件和系统功能。对于 C / C++ 开发者来说,Win32 API 的易用性还算不错。但是对于 C# 和 Rust 等更多语言来说,还需要事先准备封包或绑定,才能顺利地调用这些 API 。好消息是,微软一直在努力持续改进 Win32 API 的语言易用性和兼容性。
最新消息是,为了让 Win32 API 可被更多语言的开发者轻松访问(包括 C# 和 Rust),微软已于今日宣布了新的的 win32metADATA 项目。
该项目旨在元数据中提供针对 Win32 API 完整表层描述,以便通过自动的方式,将之映射到任何语言,从而极大地提升准确性和减少维护开销。
感兴趣的开发者,可通过 Nuget.org 网站获取 Windows 元数据文件(winmd),其中已经包含了描述整个 Win32 API 的表层元数据。
与此同时,微软宣布了基于这些元数据的三种语言预测特性,比如与 C#/ Win32 及 .NET PInvoke 项目拥有者 Andrew Arnott 合作,推出了可解析元数据并声称调用所需的 API 的 P / Invoke 封装器。
然后是针对 Rust 语言的映射支持,其遵循传统 C ++ / WinRT 应用开发的标准语言和编译器,使得开发者能够通过自然且习惯的方式,来调用 Win32 API 。
至于 Moden C++ 等语言易用性改进,还请移步至官网了解详情(传送门)。