Chào mừng đến với Diễn đàn lập trình - Cộng đồng lập trình.
Kết quả 1 đến 2 của 2
  1. #1
    Ngày tham gia
    Sep 2015
    Bài viết
    0

    mỗi hàm callback mỗi khác sao?

    - 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

  2. #2
    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 [IMG]images/smilies/biggrin.png[/IMG])

 

 

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •