Page d'accueil | Documentation | Exemples | Packages | Bloguer
Win32 est un package DART qui donne accès aux API Win32 les plus courantes à l'aide de FFI pour les rendre accessibles au code DART sans nécessiter un compilateur C ou le SDK Windows.
Win32 permet aux développeurs DART de puiser dans une large gamme d'appels API Win32 à l'aide de FFI, simplifiant l'accès au matériel Windows et aux services système. En offrant des liaisons faciles à utiliser pour les API traditionnelles Win32 et COM (Modèle d'objet composant), il vous permet de tirer pleinement parti des fonctionnalités spécifiques à Windows directement dans votre code DART.
Win32 est incroyablement polyvalent et peut être utile dans une variété de scénarios, notamment:
Développement de flottement sur Windows : Besoin d'accéder à des accessoires matériels comme GamePads ou de récupérer les paramètres du registre Windows de votre application? Win32 rend cela possible avec facilité.
Développement de packages multiplateaux : lors de l'écriture d'un nouveau package multiplateforme, vous pouvez utiliser Win32 pour l'implémentation spécifique à Windows, en vous assurant que votre package fonctionne de manière transparente sur Windows.
Utilitaires de ligne de commande améliorés : Si vous développez un utilitaire de ligne de commande avec DART et nécessitez des API de fichiers plus avancées que ce que la bibliothèque dart:io offre, Win32 fournit les fonctionnalités nécessaires.
Intégration avec les bibliothèques Windows existantes : intégrer en douceur vos applications avec d'autres bibliothèques Windows qui ont publié des métadonnées à l'aide de Win32 .
L'objectif principal de Win32 est de fournir aux développeurs DART un accès direct aux API Windows sous-jacentes, en éliminant la nécessité de cartographier manuellement les conventions d'API à DART, de simplifier le développement et d'améliorer la productivité.
Explorez la documentation complète sur win32.pub/docs pour approfondir les fonctionnalités et les capacités du package Win32 .
Ajoutez des packages FFI et WIN32 à votre projet en exécutant la commande appropriée ci-dessous:
Pour les projets de flottement :
flutter pub add ffi win32Pour les projets de fléchettes :
dart pub add ffi win32Voici un exemple qui montre comment afficher une zone de message à l'aide de la fonction MessageBox à partir de l'API Windows.
import 'package:ffi/ffi.dart' ;
import 'package:win32/win32.dart' ;
void main () {
final lpCaption = 'Dart MessageBox Demo' . toNativeUtf16 ();
final lpText = '''
This is not really an error, but we are pretending for the sake of this demo.
Resource error.
Do you want to try again?
'''
. toNativeUtf16 ();
final result = MessageBox (
NULL ,
lpText,
lpCaption,
MESSAGEBOX_STYLE . MB_ICONWARNING | // Warning icon
MESSAGEBOX_STYLE . MB_CANCELTRYCONTINUE | // Action button
MESSAGEBOX_STYLE . MB_DEFBUTTON2 , // Second button is the default
);
free (lpText);
free (lpCaption);
switch (result) {
case MESSAGEBOX_RESULT . IDCANCEL :
print ( 'Cancel pressed' );
case MESSAGEBOX_RESULT . IDTRYAGAIN :
print ( 'Try Again pressed' );
case MESSAGEBOX_RESULT . IDCONTINUE :
print ( 'Continue pressed' );
}
}Voici quelques cas d'utilisation présentant la puissance de Win32 :
Ce package fournit des modifications minimales à l'API Win32 pour prendre en charge les idioms DART, visant une grande familiarité avec les développeurs Windows existants. D'autres forfaits DART peuvent s'appuyer sur ces primitives pour fournir une API plus idiomatique pour les développeurs DART et Flutter.
Un bon exemple est Win32_Registry, qui propose un ensemble d'API pour accéder au registre Windows sans nécessiter de connaissances de FFI.
Il existe de nombreux exemples inclus dans ce package qui démontrent l'appel de diverses API WIN32 et COM. Ceux-ci peuvent être trouvés dans le sous-répertoire des exemples, et une brève description de chaque exemple peut être trouvée ici.
Un nombre croissant de packages DART sont construits sur les API de bas niveau exposées par Win32 , offrant plus d'emballages de classe idiomatiques faciles à intégrer dans vos applications Flutter et Dart.
Voici quelques-uns des packages construits au-dessus de Win32 :
Trouvez plus de packages sur pub.dev.
Le package Win32 propose un sous-ensemble de l'API Win32, avec plus d'API ajouté régulièrement en fonction de la demande des utilisateurs. Si vous avez besoin de fonctionnalités supplémentaires ou rencontrez des bogues, veuillez déposer un problème sur notre tracker de problème.
Alors que Win32 suit le versioning sémantique (SEMVER), certains changements de rupture peuvent se produire dans les versions mineures en raison des améliorations du grattoir Win32Metadata ou de l'ajout de nouvelles API.
Pour éviter les problèmes potentiels, envisagez d'épingler une version spécifique de Win32 ou de tester régulièrement avec la dernière version.
Un remerciement sincère à tous nos contributeurs qui aident à améliorer Win32 en créant des forfaits, en aidant aux problèmes et en tirant des demandes et en participant à des discussions.
L'exemple de Tetris a été adapté d'une version C par Chang-Hung Liang.
La mise en œuvre C de Snake par David Jones a été portée avec sa permission.
La version C originale de l'exemple de bloc-notes a été rédigée par Charles Petzold, autorisée par lui sans restriction.
La version C originale de l'exemple de barre de titres personnalisés est de Dmitriy Kubyshkin et est autorisée sous la licence MIT.
Les commentaires de la documentation de l'API WIN32 sont sous licence Microsoft sous la licence publique internationale Creative Commons Attribution 4.0.