PDA

View Full Version : Phân biệt _cdecl và _stdcal


Cpro
31-03-2009, 10:32 PM
Mình không hiểu trường hợp nào thì dùng _cdecl và trường hợp nào thì dùng _stdcal

thêm nữa mình muốn hỏi quá trình clean-up stack 1 hàm nghĩa là gì

Hok_bik_zi
31-03-2009, 10:44 PM
Cũng còn tùy hàm của bạn viết theo kiểu nào và mục đích của bạn là gì !? Trong một số trường hợp thì kiểu gì cũng được nhưng một số trường hợp thì bắt buộc.

Ví dụ như bạn muốn viết một hàm có số đối số không xác định MyFunction(...) thì phải dùng cdecl hay các caller convention khác.
Trong trường hợp khác như bạn muốn viết cho ứng dụng VB sử dụng thì nên dùng stdcall, vì nếu dùng cdecl sẽ phát sinh một số vấn đề phức tạp.

"clean-up stack" là dọn dẹp, làm sạch stack