Comment créer une application avec Rust pour Windows disponible en version 0.9

Par:
fredericmazue

mer, 12/05/2021 - 15:53

Mi-avril nous vous avions annoncé l'arrivée de Rust pour Windows en préversion. Depuis Microsoft continue d'avancer à un rythme soutenu sur ce projet, si bien que ust pout Windows est disponible en version 0.9.

Rust pour Windows vous permet d'invoquer n'importe quelle API Windows (passée, présente et future) directement et de manière transparente via la caisse (ou crate dans la terminologie de Rust) Windows disponible ici.

Cette caisse 'Rust for Windows', en préversion pour le moment, a été construite grâce au projet win32metadata de Microsoft. Le projet win32metadata vise à fournir des métadonnées pour les API Win32. Ces métadonnées décrivent la surface de l'API: signatures, paramètres et types d'API fortement typés. Cela permet à toute l'API Windows d'être projetée de manière automatisée et complète pour la consommation par Rust en l'occurrence, mais aussi de nombreux autres langages.

Très bien. Mais pratiquement, comment démarrer un projet ? A l'occasion de la publication de Rust for Windows 0.9, Microsoft a publié un billet qui contient un didacticiel pour créer une petit application de base type Hello World qui ouvre une boite de dialogue Windows via un appel à l'APi Win32

Une fois l'environnement de développement mis en place, en suivant ces instructions, il suffit de créer un projet sous Visual Studio Code :

Une fois les dépendances définies dans le fichier Cargo.toml du projet :

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

[dependencies]
windows = "0.9.1"

[build-dependencies]
windows = "0.9.1"

un simple fichier dans le répertoire 'Liaisons' du projets (bindings)

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

puis quelques lignes de code dans le fichier main.rs

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

et votre première application Rust pour Windows est créée.