หน้าแรก เอกสาร ตัวอย่าง แพ็คเกจ บล็อก
Win32 เป็นแพ็คเกจ DART ที่ให้การเข้าถึง Win32 API ที่พบมากที่สุดโดยใช้ FFI เพื่อให้สามารถเข้าถึงรหัส DART ได้โดยไม่ต้องใช้คอมไพเลอร์ C หรือ Windows SDK
Win32 ช่วยให้นักพัฒนา DART สามารถเข้าถึงการโทร Win32 API ที่หลากหลายโดยใช้ FFI ทำให้การเข้าถึง Windows Hardware และ System Services ง่ายขึ้น ด้วยการเสนอการผูกที่ง่ายต่อการใช้งานสำหรับ APIs ทั้ง Win32 และ Component Object) แบบดั้งเดิมมันช่วยให้คุณสามารถใช้ฟังก์ชันเฉพาะของ Windows ได้โดยตรงในรหัส DART ของคุณ
Win32 มีความหลากหลายอย่างไม่น่าเชื่อและมีประโยชน์ในสถานการณ์ที่หลากหลายรวมถึง:
การพัฒนา Flutter บน Windows : จำเป็นต้องเข้าถึงอุปกรณ์เสริมฮาร์ดแวร์เช่น gamepads หรือดึงการตั้งค่าจาก Windows Registry ในแอพของคุณหรือไม่? Win32 ทำให้สิ่งนี้เป็นไปได้อย่างง่ายดาย
การพัฒนาแพ็คเกจข้ามแพลตฟอร์ม : เมื่อเขียนแพ็คเกจข้ามแพลตฟอร์มใหม่คุณสามารถใช้ Win32 สำหรับการใช้งานเฉพาะของ Windows เพื่อให้มั่นใจว่าแพ็คเกจของคุณทำงานได้อย่างราบรื่นบน Windows
ยูทิลิตี้คำสั่งบรรทัดที่ปรับปรุงแล้ว : หากคุณกำลังพัฒนายูทิลิตี้บรรทัดคำสั่งด้วย DART และต้องการ API ไฟล์ขั้นสูงมากกว่าสิ่งที่ dart:io Library เสนอ Win32 ให้ฟังก์ชั่นที่จำเป็น
การรวมเข้ากับไลบรารี Windows ที่มีอยู่ : รวมแอพของคุณเข้ากับไลบรารี Windows อื่น ๆ อย่างราบรื่นที่เผยแพร่ข้อมูลเมตาโดยใช้ Win32
เป้าหมายหลักของ Win32 คือการให้นักพัฒนา DART เข้าถึงโดยตรงไปยัง Windows APIs พื้นฐานไม่จำเป็นต้องทำแผนที่การประชุม API ด้วยตนเองเพื่อ DART ทำให้การพัฒนาง่ายขึ้นและเพิ่มประสิทธิภาพการผลิต
สำรวจเอกสารฉบับเต็มที่ win32.pub/docs เพื่อดำน้ำลึกลงไปในคุณสมบัติและความสามารถของแพ็คเกจ Win32
เพิ่มแพ็คเกจ FFI และ Win32 ลงในโครงการของคุณโดยเรียกใช้คำสั่งที่เหมาะสมด้านล่าง:
สำหรับโครงการ Flutter :
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 API เพื่อรองรับสำนวน DART โดยมีเป้าหมายเพื่อความคุ้นเคยกับนักพัฒนา Windows ที่มีอยู่เดิม แพ็คเกจ DART อื่น ๆ สามารถสร้างบนดั้งเดิมเหล่านี้เพื่อให้ API ที่มีสำนวนมากขึ้นสำหรับนักพัฒนา DART และ Flutter
ตัวอย่างที่ดีคือ Win32_Registry ซึ่งมีชุดของ API สำหรับการเข้าถึง Windows Registry โดยไม่ต้องมีความรู้เกี่ยวกับ FFI
มีตัวอย่างมากมายที่รวมอยู่ในแพ็คเกจนี้ที่แสดงให้เห็นถึงการเรียก Win32 และ COM APIs ต่างๆ สิ่งเหล่านี้สามารถพบได้ในตัวอย่างไดเรกทอรีตัวอย่างและคำอธิบายสั้น ๆ ของแต่ละตัวอย่างสามารถพบได้ที่นี่
แพ็คเกจ DART จำนวนมากขึ้นถูกสร้างขึ้นบน API ระดับต่ำที่เปิดเผยโดย Win32 ซึ่งให้การห่อหุ้มคลาสที่มีสำนวนมากขึ้นซึ่งง่ายต่อการรวมเข้ากับแอพพลิเคชั่น Flutter และ Dart ของคุณ
นี่คือบางส่วนของแพ็คเกจที่สร้างขึ้นบน Win32 :
ค้นหาแพ็คเกจเพิ่มเติมเกี่ยวกับ pub.dev
แพ็คเกจ Win32 นำเสนอชุดย่อยของ Win32 API โดยมีการเพิ่ม API มากขึ้นอย่างสม่ำเสมอตามความต้องการของผู้ใช้ หากคุณต้องการฟังก์ชั่นเพิ่มเติมหรือพบข้อบกพร่องใด ๆ โปรดยื่นปัญหาเกี่ยวกับตัวติดตามปัญหาของเรา
ในขณะที่ Win32 เป็นไปตามเวอร์ชันความหมาย (SEMVER) การเปลี่ยนแปลงบางอย่างอาจเกิดขึ้นในรุ่นรองเนื่องจากการปรับปรุงในเครื่องขูด Win32Metadata หรือการเพิ่ม API ใหม่
เพื่อหลีกเลี่ยงปัญหาที่อาจเกิดขึ้นให้พิจารณา การปักหมุด กับ Win32 รุ่นเฉพาะหรือทดสอบเป็นประจำกับเวอร์ชันล่าสุด
ขอขอบคุณผู้สนับสนุนทุกคนที่ช่วยปรับปรุง Win32 โดยการสร้างแพ็คเกจช่วยเหลือปัญหาและดึงคำขอและการมีส่วนร่วมในการอภิปราย
ตัวอย่าง Tetris ถูกดัดแปลงจากรุ่น C โดย Chang-Hung Liang
การดำเนินการ C ของ Snake โดย David Jones ได้รับอนุญาตจากเขา
ตัวอย่าง Notepad รุ่น C ดั้งเดิมถูกเขียนโดย Charles Petzold ซึ่งได้รับอนุญาตจากเขาโดยไม่มีการ จำกัด
รุ่น C รุ่น C ดั้งเดิมของตัวอย่างที่กำหนดเองคือโดย Dmitriy Kubyshkin และได้รับใบอนุญาตภายใต้ใบอนุญาต MIT
ความคิดเห็นเอกสาร Win32 API ได้รับอนุญาตจาก Microsoft ภายใต้ใบอนุญาตสาธารณะ Creative Commons Attribution 4.0 International Public