2013-05-28 17 views
9

CLR'ye oldukça yeniyim, setWindowPos için C++/CLI belgelerini okuyorum ve işlev böyle tanımlandı.C++/CLI'de "_in_" ve "_in_opt_" ne demek?

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 
); 

ben c deneyime sahip ++ yüzden örneğin "HWND" veri türüdür ve "hWnd" değişken adıdır, anlıyoruz.

Ama "_ yılında_" ve "_in_opt_" nelerdir?

"Girdi değişkenleri" için kısa ya da benzer bir şey olduğunu tahmin ediyorum.

Bu belgede, hWndInsertAfter'in isteğe bağlı olduğu belirtilmiştir. Bu, eğer ihtiyacım yoksa fonksiyon çağrımda bu parametreye bir değişkeni geçmeyi ihmal etmemem/engelleyemem anlamına mı geliyor?

örn.

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

(Ben C++ isteğe bağlı parametreleri desteklemediği diğer yerlerde yazılı gördüğüm gibi bu bana kafa karıştırıcı olurdu. Yalnızca varsayılan parametreleri ve aşırı yükleme)

+2

[What in \ _In \ _ C++?] 'Nın olası kopyası. (Http://stackoverflow.com/questions/11457328/what-is-in-in-c) – Sparr

+0

Evet, bu benzer konuyu buldum. İlk araştırmamın yeterince iyi olmadığını itiraf ediyorum, üzgünüm. Ancak, bu sorudan aldığım cevap, özel sorularımla daha ilgili bir dokunuştu. –

cevap

16

Bu Microsoft'un Source-Code Annotation Language parçasıdır. _In_Opt_, NULL'u geçebileceğiniz anlamına gelir.

+1

Çok teşekkür ederim. Şimdi bu açıklamalara bir isim verdim (başlangıçta yorumlandıkları ve derleyicide önemli bir şey ifade ettiklerini düşündüm), daha fazla araştırma için bir başlangıç ​​noktam var. –