الصفحة الرئيسية | الوثائق | أمثلة | حزم | مدونة
Win32 هي حزمة DART التي توفر الوصول إلى واجهات برمجة تطبيقات WIN32 الأكثر شيوعًا باستخدام FFI لجعلها في متناول رمز DART دون الحاجة إلى مترجم C أو Windows SDK.
يسمح Win32 لمطوري DART بالاستفادة من مجموعة واسعة من مكالمات API WIN32 باستخدام FFI ، مما يؤدي إلى تبسيط الوصول إلى أجهزة Windows وخدمات النظام. من خلال تقديم روابط سهلة الاستخدام لكل من واجهات برمجة تطبيقات WIN32 و COM (نموذج كائن المكون) ، فإنه يتيح لك الاستفادة الكاملة من وظائف Windows مباشرة في رمز DART الخاص بك.
Win32 متعدد الاستخدامات بشكل لا يصدق ويمكن أن يكون مفيدًا في مجموعة متنوعة من السيناريوهات ، بما في ذلك:
تطوير Flutter على Windows : هل تحتاج إلى الوصول إلى ملحقات الأجهزة مثل ألعاب الألعاب أو استرداد الإعدادات من سجل Windows في تطبيقك؟ Win32 يجعل هذا ممكنا بسهولة.
تطوير حزمة المنصات : عند كتابة حزمة جديدة من المنظمة ، يمكنك استخدام Win32 للتنفيذ الخاص بـ Windows ، مما يضمن عمل الحزمة الخاصة بك بسلاسة على Windows.
أدوات سطر الأوامر المحسّنة : إذا كنت تقوم بتطوير أداة سطر الأوامر مع DART وتتطلب أكثر من واجهات برمجة تطبيقات الملفات المتقدمة مما تقدمه مكتبة dart:io ، فإن WIN32 يوفر الوظائف اللازمة.
التكامل مع مكتبات Windows الحالية : دمج تطبيقاتك بسلاسة مع مكتبات Windows الأخرى التي نشرت بيانات التعريف باستخدام Win32 .
الهدف الرئيسي من Win32 هو تزويد مطوري DART بإمكانية الوصول المباشر إلى واجهات برمجة تطبيقات Windows الأساسية ، مما يلغي الحاجة إلى اتفاقيات API يدويًا إلى DART ، وتبسيط التطوير ، وتعزيز الإنتاجية.
استكشف الوثائق الكاملة في Win32.pub/docs إلى الغوص بشكل أعمق في ميزات وقدرات حزمة Win32 .
أضف حزم FFI و Win32 إلى مشروعك عن طريق تشغيل الأمر المناسب أدناه:
لمشاريع الرفرفة :
flutter pub add ffi win32لمشاريع دارت فقط :
dart pub add ffi win32إليك مثال يوضح كيفية عرض مربع رسالة باستخدام وظيفة MessageBox من 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' );
}
}فيما يلي بعض حالات الاستخدام التي تعرض قوة Win32 :
توفر هذه الحزمة الحد الأدنى من التعديلات على واجهة برمجة تطبيقات Win32 لدعم تعبيرات DART ، بهدف الإلمام العالي بمطوري Windows الحاليين. يمكن أن تعتمد حزم DART الأخرى على هذه البدائيات لتوفير واجهة برمجة تطبيقات أكثر تصفيات لمطوري DART و FLUTTER.
مثال جيد هو Win32_registry ، الذي يوفر مجموعة من واجهات برمجة التطبيقات للوصول إلى سجل Windows دون الحاجة إلى معرفة FFI.
هناك العديد من الأمثلة المدرجة في هذه الحزمة التي تظهر استدعاء مختلف Win32 و COM واجهات برمجة التطبيقات. يمكن العثور عليها في الأمثلة الفرعية ، ويمكن العثور على وصف قصير لكل مثال هنا.
تم بناء عدد متزايد من حزم DART على واجهات برمجة التطبيقات ذات المستوى المنخفض المكشوفة من قبل WIN32 ، مما يوفر المزيد من الأغطية الفئة الاصطلاحية التي يسهل دمجها في تطبيقات الرفرفة والهدوء.
فيما يلي بعض الحزم المبنية على رأس Win32 :
العثور على المزيد من الحزم على pub.dev.
تقدم حزمة Win32 مجموعة فرعية من واجهة برمجة تطبيقات Win32 ، مع إضافة المزيد من واجهات برمجة التطبيقات بانتظام بناءً على طلب المستخدم. إذا كنت بحاجة إلى وظيفة إضافية أو تواجه أي أخطاء ، فيرجى تقديم مشكلة في تعقب المشكلات لدينا.
بينما يتبع Win32 الإصدار الدلالي (Semver) ، قد تحدث بعض التغييرات في الإصدارات الثانوية بسبب التحسينات في مكشطة Win32Metadata أو إضافة واجهات برمجة التطبيقات الجديدة.
لتجنب المشكلات المحتملة ، فكر في التعليق على إصدار معين من Win32 أو الاختبار بانتظام مع أحدث إصدار.
شكرًا جزيلاً لجميع المساهمين الذين يساعدون في تحسين Win32 من خلال إنشاء الحزم ، والمساعدة في القضايا وطلبات السحب ، والمشاركة في المناقشات.
تم تكييف مثال Tetris من إصدار C بواسطة Chang-Hung Liang.
تم تنفيذ C تنفيذ Snake بواسطة David Jones بإذنه.
تم تأليف الإصدار C الأصلي من مثال المفكرة بواسطة Charles Petzold ، الذي تم ترخيصه من قبله دون قيود.
الإصدار C الأصلي من مثال شريط العنوان المخصص هو بواسطة Dmitriy Kubyshkin وهو مرخص بموجب ترخيص MIT.
يتم ترخيص تعليقات وثائق API Win32 بموجب ترخيص Creative Commons Attribution 4.0 الدولي.