
Nguyên bản được gửi bởi
nickxxx
Mình có đọc qua một số tài liệu nói về Hook nhưng mình ko hiểu rõ về ý nghĩa của những cái này:
CharSet = CharSet.Auto,
CallingConvention = CallingConvention.StdCall,
SetLastError = true,,
EntryPoint = "GetDesktopWindow"
có bạn nào biết ý nghĩa của những từ đó thì giúp mình nhé.
thanks
CallingConvention: dùng thiết lập qui ước triệu gọi được dùng để trao qua các đối mục phương thức.
CharSet: cho biết các đối mục kiểu chuỗi đối với phương thức phải được marshalling
EntryPoint:cho biết tên hoặc số thứ tự của phương thức phải được marshalling
SetLastError: nếu vùng mục tin này được cho về true có nghĩa là phía triệu gọi có thể gọi hàm Win32.GetLastError() để xác định liệu xem 1 sai lầm có xảy ra hay không trong khi thi hành phương thức. Trị mặc nhiên là true.
MỞ RỘNG: Khai báo vùng mục tin CallingConventions và EntryPoint
Như bạn đã biết, các hàm WIN32 API có vô số định nghĩa kiểu dữ liệu cho biết các thông số phải được trao qua hàm thế nào. Bạn có thể cho đặt để vùng mục tin CallingConvention, với trị mặc nhiên là StdCall, nên bạn có thể phớt lờ việc đặt để tường minh vùng mục tin này (vì đây là calling convention WIN32 thông dụng nhất).
Cuối cùng là việc đặt để vùng mục tin EntryPoint cho biết điểm đột nhập. Theo mặc định, trị nàyy giống như tên hàm mà bạn đang prototyping. Như vậy, khai báo sau đây cho biết điểm đột nhập được hiểu ngầm là MessagBoxW
Code:
[DllImport("user32",ExactSpelling=true,CharSet=CharSet.Unicode)]
public static extern int MessageBoxW(...);