tailieunhanh - Khả năng liên tác và mã lệnh không được quản lý Microsoft .NET phần cuối

(Bỏ qua lớp OSVersionInfo.) [DllImport("")] public static extern bool GetVersionEx([In, Out] OSVersionInfo osvi); private static void Main() | using System using ervices public class CallWithStructure Bỏ qua lớp OSVersionInfo. DllImport public static extern bool GetVersionEx In Out OSVersionInfo osvi private static void Main OSVersionInfo osvi new OSVersionInfo osvi GetVersionEx osvi Class size Major Version Minor Version Build Number Platform Id CSD Version Platform Version Neu chạy ứng dụng này trên hệ thống Windows XP bạn sẽ thấy thông tin như sau Class size 148 Major Version 5 Minor Version 1 Build Number 2600 Platform Id 2 CSD Version Service Pack 1 Platform Win32NT Version Gọi một hàm không-được-quản-lý có sử dụng callback ĩ Bạn cần gọi một hàm không-được-quản-lý và cho phép nó gọi một hàm khác. Tạo một ủy nhiệm cho callback. Sử dụng ủy nhiệm này khi định nghĩa và sử dụng hàm không-được-quản-lý. Nhiều hàm của Win32 API sử dụng callback. Ví dụ nếu muốn lấy tên của tất cả các cửa sổ đang mở bạn có thể sử dụng hàm EnumWindows trong thư viện . Khi gọi EnumWindows bạn cần truyền cho nó một con trỏ chỉ đến một hàm khác trong mã lệnh của bạn. Hệ điều hành Windows sau đó sẽ gọi hàm này mỗi khi tìm thấy một cửa sổ đang mở và truyền handle của cửa sổ cho nó. .NET Framework cho phép bạn quản lý việc sử dụng callback mà không cần các con trỏ và các khối mã không an toàn. Thay vào đó bạn có thể định nghĩa và sử dụng một ủy nhiệm chỉ đến hàm callback. Khi bạn truyền ủy nhiệm cho hàm EnumWindows CLR sẽ tự động marshal ủy nhiệm thành con trỏ hàm không-được-quản-lý như mong muốn. Ví dụ dưới đây sử dụng EnumWindows cùng với một callback để hiển thị tên của tất cả các cửa sổ đang .

crossorigin="anonymous">
Đã phát hiện trình chặn quảng cáo AdBlock
Trang web này phụ thuộc vào doanh thu từ số lần hiển thị quảng cáo để tồn tại. Vui lòng tắt trình chặn quảng cáo của bạn hoặc tạm dừng tính năng chặn quảng cáo cho trang web này.