微軟計(jì)劃讓 C# 和 Rust 等語(yǔ)言更容易訪問(wèn) Windows32 API
3月8日消息 外媒報(bào)道,Windows32 API 是經(jīng)典 Windows 桌面應(yīng)用的原生平臺(tái)。它適用于需要直接訪問(wèn)系統(tǒng)功能和硬件的應(yīng)用程序。這些 Windows32 API 對(duì)于 C 和 C++ 開發(fā)者來(lái)說(shuō)是很容易訪問(wèn)的。然而對(duì)于其他語(yǔ)言,如 C# 和 Rust,則需要包裝器或綁定來(lái)訪問(wèn)這些 API。為了讓更多的語(yǔ)言包括 C# 和 Rust 能夠訪問(wèn) Windows32 API,微軟宣布了新的 Windows32metadata 項(xiàng)目。

新的 Windows32metadata 項(xiàng)目目的是以元數(shù)據(jù)的方式提供 Windows32 API 表層的完整描述,從而可以以自動(dòng)化的方式將其投射到任何語(yǔ)言中,提高正確性并將維護(hù)開銷降到最低。
通過(guò)這個(gè)項(xiàng)目,你可以獲取 Nuget.org 網(wǎng)站上的 Windows 元數(shù)據(jù)文件(winmd),其中包含描述整個(gè) Windows32 API 表層的元數(shù)據(jù)。語(yǔ)言預(yù)測(cè)需要建立在這些元數(shù)據(jù)之上,以使開發(fā)人員能夠從他們選擇的語(yǔ)言中習(xí)慣性地調(diào)用 Windows32 API。微軟公布了三種語(yǔ)言預(yù)測(cè)。
- C#/Windows32 是與 . NET 的 PInvoke 項(xiàng)目的所有者 Andrew Arnott 合作構(gòu)建的,C#/Windows32 可以解析元數(shù)據(jù),并生成調(diào)用你關(guān)心的 API 所需的 P/Invoke 包裝器。
- Rust 語(yǔ)言投射遵循 C++/WinRT 建立的傳統(tǒng),即使用標(biāo)準(zhǔn)語(yǔ)言和編譯器為 Windows 構(gòu)建語(yǔ)言投射,為 Rust 開發(fā)者提供了一種自然和習(xí)慣性的方式來(lái)調(diào)用 Windows API。
- Modern C++ 投射。
【編輯推薦】