Página de inicio | Documentación | Ejemplos | Paquetes | Blog
Win32 es un paquete de dardos que proporciona acceso a las API Win32 más comunes que usa FFI para que sean accesibles para darle el código sin requerir un compilador C o el SDK de Windows.
Win32 permite a los desarrolladores de DART aprovechar una amplia gama de llamadas de API WIN32 utilizando FFI, simplificando el acceso a los servicios de hardware y sistema de Windows. Al ofrecer enlaces fáciles de usar para las API tradicionales Win32 y COM (Modelo de objetos de componente), le permite aprovechar completamente las funcionalidades específicas de Windows directamente en su código DART.
Win32 es increíblemente versátil y puede ser útil en una variedad de escenarios, que incluyen:
Desarrollo de Flutter en Windows : ¿Necesita acceder a accesorios de hardware como gamepads o recuperar la configuración del registro de Windows en su aplicación? Win32 hace esto posible con facilidad.
Desarrollo de paquetes multiplataforma : al escribir un nuevo paquete multiplataforma, puede usar Win32 para la implementación específica de Windows, asegurando que su paquete funcione sin problemas en Windows.
Utilidades de línea de comandos mejoradas : si está desarrollando una utilidad de línea de comandos con DART y requiere API de archivos más avanzadas que lo que ofrece la biblioteca dart:io , Win32 proporciona la funcionalidad necesaria.
Integración con las bibliotecas de Windows existentes : integre sin problemas sus aplicaciones con otras bibliotecas de Windows que han publicado metadatos usando Win32 .
El objetivo principal de Win32 es proporcionar a los desarrolladores de DART acceso directo a las API de Windows subyacentes, eliminando la necesidad de mapear manualmente las convenciones de API para darle, simplificar el desarrollo y mejorar la productividad.
Explore la documentación completa en Win32.pub/Docs para sumergirse más profundamente en las características y capacidades del paquete Win32 .
Agregue paquetes FFI y WIN32 a su proyecto ejecutando el comando apropiado a continuación:
Para proyectos de Flutter :
flutter pub add ffi win32Para proyectos solo de dardo :
dart pub add ffi win32Aquí hay un ejemplo que demuestra cómo mostrar un cuadro de mensaje usando la función de cuadro de mensajes desde la API de 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' );
}
}Aquí hay algunos casos de uso que muestran el poder de Win32 :
Este paquete proporciona modificaciones mínimas a la API WIN32 para admitir idiots de DART, con el objetivo de una alta familiaridad con los desarrolladores de Windows existentes. Otros paquetes de dardos pueden basarse en estas primitivas para proporcionar una API más idiomática para los desarrolladores de Dart y Flutter.
Un buen ejemplo es Win32_registry, que ofrece un conjunto de API para acceder al registro de Windows sin requerir el conocimiento de FFI.
Hay muchos ejemplos incluidos con este paquete que demuestran llamar a varias API WIN32 y COM. Estos se pueden encontrar en el subdirectorio de ejemplos, y se puede encontrar una breve descripción de cada ejemplo aquí.
Un número creciente de paquetes de dardos se basa en las API de bajo nivel expuestas por Win32 , proporcionando envoltorios de clase más idiomáticos que son fáciles de integrar en sus aplicaciones Flutter and Dart.
Estos son algunos de los paquetes construidos sobre Win32 :
Encuentre más paquetes en Pub.dev.
El paquete Win32 ofrece un subconjunto de la API Win32, con más API que se agregan regularmente en función de la demanda del usuario. Si necesita funcionalidad adicional o encuentra algún error, presente un problema en nuestro rastreador de problemas.
Mientras que Win32 sigue al versiones semánticas (SEMVER), algunos cambios de ruptura pueden ocurrir en versiones menores debido a mejoras en el raspador Win32Metadata o la adición de nuevas API.
Para evitar posibles problemas, considere fijar una versión específica de Win32 o probar regularmente con la última versión.
Un sincero agradecimiento a todos nuestros contribuyentes que ayudan a mejorar WIN32 creando paquetes, ayudando con problemas y aplastan las solicitudes, y participan en discusiones.
El ejemplo de Tetris fue adaptado de una versión C por Chang-Hung Liang.
La implementación de C de Snake de David Jones fue portada con su permiso.
La versión C original del Ejemplo del Bloc de notas fue escrita por Charles Petzold, con licencia por él sin restricción.
La versión C original del ejemplo de barra de título personalizada es de Dmitriy Kubyshkin y tiene licencia bajo la licencia MIT.
Los comentarios de documentación de la API WIN32 son licenciados por Microsoft bajo la licencia pública internacional Creative Commons Attribution 4.0.