Beranda | Dokumentasi | Contoh | Paket | Blog
Win32 adalah paket DART yang menyediakan akses ke API Win32 yang paling umum menggunakan FFI untuk membuatnya dapat diakses ke kode DART tanpa memerlukan kompiler C atau Windows SDK.
Win32 memungkinkan pengembang DART untuk memanfaatkan berbagai panggilan API Win32 menggunakan FFI, menyederhanakan akses ke layanan perangkat keras dan sistem Windows. Dengan menawarkan binding yang mudah digunakan untuk API Win32 dan COM (Model Objek Komponen) tradisional, ini memungkinkan Anda untuk sepenuhnya memanfaatkan fungsionalitas spesifik jendela langsung dalam kode DART Anda.
Win32 sangat fleksibel dan dapat berguna dalam berbagai skenario, termasuk:
Pengembangan Flutter di Windows : Perlu mengakses aksesori perangkat keras seperti gamepad atau mengambil pengaturan dari Windows Registry di aplikasi Anda? Win32 memungkinkan ini dengan mudah.
Pengembangan paket lintas platform : Saat menulis paket lintas platform baru, Anda dapat menggunakan Win32 untuk implementasi khusus Windows, memastikan paket Anda bekerja dengan mulus di Windows.
Utilitas baris perintah yang disempurnakan : Jika Anda mengembangkan utilitas baris perintah dengan DART dan membutuhkan API file yang lebih canggih daripada apa yang ditawarkan dart:io Library, Win32 menyediakan fungsionalitas yang diperlukan.
Integrasi dengan perpustakaan Windows yang ada : dengan lancar mengintegrasikan aplikasi Anda dengan perpustakaan Windows lainnya yang telah menerbitkan metadata menggunakan Win32 .
Tujuan utama Win32 adalah untuk memberi pengembang DART akses langsung ke Windows API yang mendasari, menghilangkan kebutuhan untuk memetakan konvensi API secara manual ke DART, menyederhanakan pengembangan, dan meningkatkan produktivitas.
Jelajahi dokumentasi lengkap di win32.pub/docs untuk menyelam lebih dalam ke fitur dan kemampuan paket Win32 .
Tambahkan paket FFI dan Win32 ke proyek Anda dengan menjalankan perintah yang sesuai di bawah ini:
Untuk proyek flutter :
flutter pub add ffi win32Untuk proyek -proyek khusus panah :
dart pub add ffi win32Berikut adalah contoh yang menunjukkan cara menampilkan kotak pesan menggunakan fungsi MessageBox dari Windows API.
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' );
}
}Berikut adalah beberapa kasus penggunaan yang menampilkan kekuatan Win32 :
Paket ini memberikan modifikasi minimal pada API Win32 untuk mendukung idiom DART, yang bertujuan untuk keakraban tinggi dengan pengembang Windows yang ada. Paket DART lainnya dapat dibangun di atas primitif ini untuk memberikan API yang lebih idiomatik untuk pengembang Dart dan Flutter.
Contoh yang baik adalah Win32_Registry, yang menawarkan serangkaian API untuk mengakses Registry Windows tanpa memerlukan pengetahuan FFI.
Ada banyak contoh yang disertakan dengan paket ini yang menunjukkan memanggil berbagai Win32 dan COM API. Ini dapat ditemukan dalam contoh subdirektori, dan deskripsi singkat dari setiap contoh dapat ditemukan di sini.
Semakin banyak paket DART dibangun di atas API tingkat rendah yang diekspos oleh Win32 , memberikan lebih banyak pembungkus kelas idiomatik yang mudah diintegrasikan ke dalam aplikasi flutter dan dart Anda.
Berikut adalah beberapa paket yang dibangun di atas Win32 :
Temukan lebih banyak paket di pub.dev.
Paket Win32 menawarkan sebagian dari API Win32, dengan lebih banyak API ditambahkan secara teratur berdasarkan permintaan pengguna. Jika Anda memerlukan fungsionalitas tambahan atau menemukan bug apa pun, silakan ajukan masalah pada pelacak masalah kami.
Sementara Win32 mengikuti Semantic Versioning (SEMVER), beberapa perubahan besar dapat terjadi dalam versi kecil karena peningkatan dalam scraper Win32Metadata atau penambahan API baru.
Untuk menghindari masalah potensial, pertimbangkan untuk menyematkan ke versi tertentu dari Win32 atau secara teratur menguji dengan versi terbaru.
Terima kasih yang tulus kepada semua kontributor kami yang membantu meningkatkan Win32 dengan membuat paket, membantu dengan masalah dan menarik permintaan, dan berpartisipasi dalam diskusi.
Contoh Tetris diadaptasi dari versi C oleh Chang-Hung Liang.
Implementasi C Snake oleh David Jones diangkut dengan izinnya.
Versi C asli dari contoh Notepad ditulis oleh Charles Petzold, dilisensikan olehnya tanpa batasan.
Versi C asli dari contoh titlebar khusus adalah oleh Dmitriy Kubyshkin dan dilisensikan di bawah lisensi MIT.
Komentar dokumentasi API Win32 dilisensikan oleh Microsoft di bawah Lisensi Publik Internasional Creative Commons Attribution 4.0.