2013-05-28 27 views
9

Tôi khá mới đối với CLR, tôi đang đọc tài liệu C++/CLI cho setWindowPos và hàm được định nghĩa giống như vậy."_in_" và "_in_opt_" có nghĩa là gì trong C++/CLI?

BOOL WINAPI SetWindowPos(
    _In_  HWND hWnd, 
    _In_opt_ HWND hWndInsertAfter, 
    _In_  int X, 
    _In_  int Y, 
    _In_  int cx, 
    _In_  int cy, 
    _In_  UINT uFlags 
); 

Tôi có kinh nghiệm về C++ vì vậy tôi hiểu rằng, ví dụ: "HWND" là loại dữ liệu và "hWnd" là tên biến.

Nhưng "_ _" và "_in_opt_" là gì?

Tôi đoán chúng viết tắt cho "biến đầu vào" hoặc thứ gì đó.

Nó được đề cập trong tài liệu mà hWndInsertAfter là tùy chọn. Điều này có nghĩa là tôi có thể chỉ đơn giản là bỏ qua/không bận tâm đi qua một biến đến tham số này trong cuộc gọi chức năng của tôi nếu tôi không cần phải?

ví dụ:

SetWindowPos(this,0,0,GetSystemMetrics(SM_CXMAXIMIZED),GetSystemMetrics(SM_CYMAXIMIZED),SWP_NOZORDER); 
//Note that we're one parameter short here (the second is missing) 

(Đây sẽ là khó hiểu với tôi, như tôi đã nhìn thấy nó được viết ở những nơi khác mà C++ không hỗ trợ các thông số tùy chọn. Chỉ thông số mặc định và quá tải)

+2

có thể trùng lặp của [Cái gì \ _In \ _ trong C++?] (Http://stackoverflow.com/questions/11457328/what-is-in-in-c) – Sparr

+0

Có, tôi chỉ nằm chủ đề tương tự này. Tôi sẽ thừa nhận rằng nghiên cứu ban đầu của tôi không đủ tốt, xin lỗi. Tuy nhiên, câu trả lời tôi nhận được từ câu hỏi này là một liên lạc phù hợp hơn với các câu hỏi cụ thể của tôi. –

Trả lời

16

Đây là một phần của Microsoft Source-Code Annotation Language. _In_Opt_ có nghĩa là bạn có thể vượt qua NULL.

+1

Cảm ơn bạn rất nhiều. Bây giờ tôi có một cái tên cho các chú thích này (ban đầu tôi nghĩ rằng chúng được hiểu và có nghĩa là một cái gì đó quan trọng đối với trình biên dịch), tôi có một điểm khởi đầu để nghiên cứu thêm. –