1. Trang chủ
  2. » Công Nghệ Thông Tin

Windows programming DLL

13 398 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 13
Dung lượng 121,53 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Lập trình Windows Slide về thư viện động DLL. Tạo dll từ C dùng trong cùng solution của C Tạo dll từ C, nạp động khi chạy từ C Kĩ thuật plugin Tạo dll từ C++, nạp lên dùng bởi C Tạo dll từ C, nạp lên dùng bởi C++

Trang 1

Dynamic link library

Lập trình Windows

Trang 2

Các kĩ thuật

 Tạo dll từ C# & dùng trong cùng solution

của C#

 Tạo dll từ C#, nạp động khi chạy từ C#

 Kĩ thuật plugin

 Tạo dll từ C++, nạp lên dùng bởi C#

 Tạo dll từ C#, nạp lên dùng bởi C++

2

Trang 3

DLL chứa được gì?

 Hàm, lớp

 Tài nguyên: hình ảnh, tập tin, âm thanh, con

trỏ…

 Để lấy tài nguyên lúc runtime, dùng hàm

Assembly.GetManifestResourceStream

3

Trang 4

Tạo DLL trong cùng

solution

 Tạo project dạng Class Library bên trong

solution

 Trong project cha, thêm tham chiếu

 Nhấn chuột phải > Add Reference

 Trong tab project, chọn tên project dll đã tạo

 Sử dụng hàm của lớp trong dll cần thêm

khai báo

 Using

 http://

Trang 5

Tạo DLL riêng và nạp

Assembly.LoadFile()

GetType(“Ten”)

5

Trang 6

Tạo plugin

6

Trang 7

Các bước

 Tạo một dll khai báo interface

 Tạo các dll khác kế thừa từ interface trên

 Hiện thực hóa theo nghiệp vụ tương ứng riêng

 Khi chạy, nạp các dll này

7

Trang 8

 Chương trình tính toán với 2 số

 Mặc định chương trình làm được phép cộng

 Khi scan thì sẽ thêm vào hai khả năng mới

là phép trừ và phép nhân

8

Trang 9

Bài tập

 Viết chương trình chơi Búa Kéo Bao với 3 AI

 AI mặc định đi kèm tập tin exe: random

 2 AI trong 2 DLL, khi được scan thì mới hiện ra

AI ăn gian: luôn luôn thắng

AI nịnh bợ: luôn luôn thua

 Viết chương trình vẽ với khả năng vẽ 3 hình

 Hình mặc định đi kèm là đường thẳng

 2 hình kế tiếp là hình vuông và hình tròn được

đặt trong 2 DLL, khi scan mới thấy

 Cài đặt sao cho nhập đúng mật khẩu thì mới nạp được 2 DLL này

9

Trang 10

Mở rộng – Tự tìm hiểu

10

Trang 11

Gọi Win32 API: P/Invoke

 Calling Win32 DLLs in C# with P/Invoke

 http://msdn.microsoft.com/en-us/magazine/cc164123.aspx

 Giả sử ta muốn gọi hàm MessageBeep trong

user32.dll có nguyên mẫu như sau:

 BOOL MessageBeep( UINT uType /* beep type */);

 Khai báo ánh xạ trong C#:

[ DllImport ( "User32.dll" )]

static extern Boolean MessageBeep( UInt32

beepType);

 Sau đó gọi hàm như bình thường

11

Trang 12

Tạo C++ DLL và gọi từ

C#

 http://

www.codeproject.com/Articles/9826/How-to-create-a-DLL-library-in-C-and-then-use-it-w

12

Trang 13

Late binding C++ DLL

 http://

www.codeproject.com/Articles/1557/Late-bin ding-on-native-DLLs-with-C

13

Ngày đăng: 30/12/2015, 13:43

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w