Homepage | Dokumentation | Beispiele | Pakete | Blog
Win32 ist ein DART -Paket, das den Zugriff auf die häufigsten Win32 -APIs mit FFI ermöglicht, um sie für DART -Code zugänglich zu machen, ohne einen C -Compiler oder den Windows SDK zu erfordern.
Mit Win32 können DART -Entwickler mithilfe von FFI eine breite Palette von Win32 -API -Aufrufen nutzen und den Zugriff auf Windows -Hardware- und Systemdienste vereinfachen. Indem Sie einfach zu bedienende Bindungen für herkömmliche APIs von Win32 und COM (Komponentenobjektmodell) anbieten, können Sie Windows-spezifische Funktionen direkt in Ihrem Dart-Code vollständig nutzen.
Win32 ist unglaublich vielseitig und kann in einer Vielzahl von Szenarien nützlich sein, einschließlich:
Flutterentwicklung unter Windows : Müssen Sie auf Hardware -Zubehör wie Gamepads zugreifen oder Einstellungen aus der Windows -Registrierung in Ihrer App abrufen? Win32 macht dies mit Leichtigkeit möglich.
Paket-plattformübergreifende Paketentwicklung : Beim Schreiben eines neuen plattformübergreifenden Pakets können Sie Win32 für die Windows-spezifische Implementierung verwenden, um sicherzustellen, dass Ihr Paket nahtlos unter Windows funktioniert.
Verbesserte Befehlszeilen-Dienstprogramme : Wenn Sie ein Befehlszeilendienstprogramm mit DART entwickeln und erweitertere Datei-APIs benötigen als das, was die dart:io Bibliothek bietet, bietet Win32 die erforderlichen Funktionen.
Integration mit vorhandenen Windows -Bibliotheken : Integrieren Sie Ihre Apps reibungslos in andere Windows -Bibliotheken, die Metadaten mit Win32 veröffentlicht haben.
Das Hauptziel von Win32 ist es, DART -Entwicklern direkten Zugriff auf zugrunde liegende Windows -APIs zu gewähren und die Notwendigkeit zu beseitigen, API -Konventionen manuell auf Dart zu kartieren, die Entwicklung zu vereinfachen und die Produktivität zu verbessern.
Erkunden Sie die vollständige Dokumentation bei Win32.Pub/docs, um tiefer in die Funktionen und Funktionen des Win32 -Pakets einzutauchen.
Fügen Sie Ihrem Projekt FFI- und Win32 -Pakete hinzu, indem Sie den entsprechenden Befehl unten ausführen:
Für Flutterprojekte :
flutter pub add ffi win32Für Projekte nur für Dart :
dart pub add ffi win32Hier ist ein Beispiel, das zeigt, wie ein Meldungsfeld mit der MessageBox -Funktion von der Windows -API angezeigt wird.
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' );
}
}Hier sind einige Anwendungsfälle, die die Kraft von Win32 zeigen:
Dieses Paket bietet minimale Änderungen an der Win32 -API zur Unterstützung von Dart -Idioms und zielt auf eine hohe Vertrautheit mit vorhandenen Windows -Entwicklern ab. Andere DART -Pakete können auf diesen Primitiven aufbauen, um eine idiomatischere API für Dart- und Flattern -Entwickler bereitzustellen.
Ein gutes Beispiel ist Win32_registry, das eine Reihe von APIs für den Zugriff auf die Windows -Registrierung bietet, ohne Kenntnisse über FFI zu erfordern.
In diesem Paket sind viele Beispiele enthalten, die demonstrieren, dass verschiedene Win32- und COM -APIs aufgerufen werden. Diese finden Sie in den Beispielen des Unterverzeichnisses, und hier finden Sie eine kurze Beschreibung jedes Beispiels.
Eine wachsende Anzahl von DART-Paketen basiert auf den von Win32 ausgesetzteren APIs auf niedriger Ebene und bietet mehr idiomatische Klassenverpackungen, die leicht in Ihre Flattern- und Dart-Apps integriert werden können.
Hier sind einige der Pakete, die auf Win32 aufgebaut sind:
Weitere Pakete auf Pub.dev.
Das Win32 -Paket bietet eine Teilmenge der Win32 -API, wobei regelmäßig mehr APIs auf der Grundlage der Benutzerbedarf hinzugefügt werden. Wenn Sie zusätzliche Funktionen benötigen oder Fehler begegnen, stellen Sie bitte ein Problem in unserem Ausgabe -Tracker ein.
Während Win32 der Semantic Versioning (SEMVER) folgt, können einige Bruchänderungen in geringfügigen Versionen aufgrund von Verbesserungen des Win32Metadata -Schabers oder der Hinzufügung neuer APIs auftreten.
Um potenzielle Probleme zu vermeiden, sollten Sie eine bestimmte Version von Win32 festlegen oder regelmäßig mit der neuesten Version getestet werden.
Ein herzliches Dankeschön an alle unsere Mitwirkenden, die bei der Verbesserung von Win32 helfen, durch das Erstellen von Paketen, die Unterstützung bei Problemen und Anfragen und die Teilnahme an Diskussionen.
Das Tetris-Beispiel wurde aus einer C-Version von Chang-Hung-Liang adaptiert.
Die C -Implementierung von Snake durch David Jones wurde mit seiner Erlaubnis portiert.
Die ursprüngliche C -Version des Notepad -Beispiels wurde von Charles Petzold verfasst, der von ihm ohne Einschränkung lizenziert wurde.
Die ursprüngliche C -Version des benutzerdefinierten Titelbuch -Beispiels stammt von Dmitriy Kubyshkin und ist unter der MIT -Lizenz lizenziert.
Die Kommentare von Win32 -API -Dokumentationen werden von Microsoft unter der Creative Commons Attribution 4.0 International Public Lizenz lizenziert.