Página inicial | Documentação | Exemplos | Pacotes | Blog
O Win32 é um pacote DART que fornece acesso às APIs Win32 mais comuns usando o FFI para torná -las acessíveis ao código DART sem exigir um compilador C ou o SDK do Windows.
O Win32 permite que os desenvolvedores do DART explodam uma ampla gama de chamadas de API Win32 usando FFI, simplificando o acesso aos serviços de hardware e sistema do Windows. Ao oferecer ligações fáceis de usar para as APIs tradicionais de Win32 e COM (Modelo de Objeto Componente), ele permite aproveitar totalmente as funcionalidades específicas do Windows diretamente no seu código DART.
O Win32 é incrivelmente versátil e pode ser útil em vários cenários, incluindo:
Desenvolvimento de vibração no Windows : precisa acessar acessórios de hardware, como gamepads ou recuperar configurações do registro do Windows em seu aplicativo? Win32 torna isso possível com facilidade.
Desenvolvimento de pacotes de plataforma cruzada : Ao escrever um novo pacote de plataforma cruzada, você pode usar o Win32 para a implementação específica do Windows, garantindo que seu pacote funcione perfeitamente no Windows.
Utilitários de linha de comando aprimorados : se você estiver desenvolvendo um utilitário de linha de comando com o DART e exigir APIs de arquivo mais avançadas do que o que a biblioteca dart:io oferece, o Win32 fornece a funcionalidade necessária.
Integração com as bibliotecas do Windows existentes : integre seus aplicativos sem problemas a outras bibliotecas do Windows que publicaram metadados usando o Win32 .
O principal objetivo do Win32 é fornecer aos desenvolvedores do DART acesso direto às APIs do Windows subjacente, eliminando a necessidade de mapear manualmente as convenções de API manualmente para DART, simplificar o desenvolvimento e aumentar a produtividade.
Explore a documentação completa em win32.pub/docs para se aprofundar nos recursos e capacidades do pacote Win32 .
Adicione pacotes de FFI e Win32 ao seu projeto executando o comando apropriado abaixo:
Para projetos de vibração :
flutter pub add ffi win32Para projetos somente para Dart :
dart pub add ffi win32Aqui está um exemplo que demonstra como exibir uma caixa de mensagem usando a função MessageBox da API do 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' );
}
}Aqui estão alguns casos de uso que mostram o poder do Win32 :
Este pacote fornece modificações mínimas para a API Win32 para suportar idiomas de dardos, visando alta familiaridade com os desenvolvedores do Windows existentes. Outros pacotes de DART podem desenvolver essas primitivas para fornecer uma API mais idiomática para desenvolvedores de dardos e vibração.
Um bom exemplo é o Win32_Registry, que oferece um conjunto de APIs para acessar o registro do Windows sem exigir conhecimento de FFI.
Existem muitos exemplos incluídos neste pacote que demonstram chamar várias APIs Win32 e COM. Eles podem ser encontrados no subdiretório de exemplos, e uma breve descrição de cada exemplo pode ser encontrada aqui.
Um número crescente de pacotes de dardo é construído nas APIs de baixo nível expostas pelo Win32 , fornecendo invólucros de classe mais idiomáticos que são fáceis de integrar aos seus aplicativos de vibração e dardos.
Aqui estão alguns dos pacotes construídos sobre o Win32 :
Encontre mais pacotes no pub.dev.
O pacote Win32 oferece um subconjunto da API Win32, com mais APIs sendo adicionadas regularmente com base na demanda do usuário. Se você precisar de funcionalidades adicionais ou encontrar qualquer bug, registre um problema em nosso rastreador de problemas.
Enquanto o Win32 segue o versão semântica (Semver), algumas mudanças de ruptura podem ocorrer em versões menores devido a melhorias no raspador Win32Metadata ou na adição de novas APIs.
Para evitar problemas em potencial, considere fixar uma versão específica do Win32 ou testar regularmente com a versão mais recente.
Um sincero agradecimento a todos os nossos colaboradores que ajudam a melhorar o Win32 , criando pacotes, ajudando com problemas e solicitações e participando de discussões.
O exemplo de Tetris foi adaptado de uma versão C por Chang-Hung Liang.
A implementação C de Snake por David Jones foi portada com sua permissão.
A versão C original do exemplo do bloco de notas foi de autoria de Charles Petzold, licenciado por ele sem restrição.
A versão C original do exemplo de TitleBar personalizada é por Dmitriy Kubyshkin e é licenciada sob a licença do MIT.
Os comentários da documentação da API do Win32 são licenciados pela Microsoft sob a licença pública Creative Commons Attribution 4.0 International.