- cho mình hỏi là : hàm callback sẽ không được gọi bởi ứng dụng mà được gọi bởi windows vậy thì windows sẽ truyền tham số cho nó mình thắc mắc mỗi hàm callback mỗi khác sao
windows có thể truyền tham số chính xác được ( mình thấy mấy hàm khác nhau kiểu của tham số, mình thấy hàm callback có 4 tham số không biết có hàm nào có nhiều
hoặc ít hơn 4 tham số k nữa/0
Chuyên môn của mình k hoàn toàn trên window nên k chắc có những hàm callback nào nhưng trong c/c++ có 1 cách định nghĩa các hàm callback (xem trong này stackoverflow.com/questions/142789/what-is-a-callback-in-c-and-how-are-they-implemented). Theo cách viết này bạn có thể dựng các biến chứa địa chỉ của hàm cần gọi (với điều kiện là hàm cần gọi phải có cấu trúc y chang như trong định nghĩa callback). Còn lý do vì sao nó truyền tham số chính xác thì phải dịch ra asm thì sẽ thấy cách nó call hàm từ 1 biến à. Cơ bản nó truyền tham số vào stack (x86) hoặc các thanh ghi lưu trữ (x86-64) gán địa chỉ hàm cần gọi vào 1 thanh ghi sau đó call thanh ghi đó là xong (tất nhiên con chip phải hỗ trợ cách gọi hàm kiểu này)