2013-05-28 14 views
9

Sono abbastanza nuovo per CLR, sto leggendo la documentazione C++/CLI per setWindowPos e la funzione è definita in questo modo.Cosa significano "_in_" e "_in_opt_" in 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 
); 

Ho esperienza in C++ in modo da capire che, per esempio, "HWND" è il tipo di dati e "hWnd" è il nome della variabile.

Ma che cosa sono "_in _" e "_in_opt_"?

Suppongo che siano abbreviazione di "variabili di input" o qualcosa del genere.

Nella documentazione è indicato che hWndInsertAfter è facoltativo. Questo significa che posso semplicemente omettere/non disturbare il passaggio di una variabile a questo parametro nella mia chiamata di funzione se non ne ho bisogno?

ad es.

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

(Questo sarebbe confuso per me, come ho visto scritto in altri luoghi che C++ non supporta parametri opzionali. Solo i parametri di default e sovraccarichi)

+2

possibile duplicato di [Che cosa è \ _In \ _ in C++?] (Http://stackoverflow.com/questions/11457328/what-is-in-in-c) – Sparr

+0

Sì, ho appena individuato questo argomento simile. Ammetto che la mia ricerca iniziale non è stata abbastanza buona, mi dispiace. Tuttavia, la risposta che ho ricevuto da questa domanda è stata un tocco più pertinente alle mie domande specifiche. –

risposta

16

Questo fa parte di Microsoft di Source-Code Annotation Language. _In_Opt_ significa che è possibile passare NULL.

+1

Grazie mille. Ora che ho un nome per queste annotazioni (inizialmente pensavo che fossero interpretate e significassero qualcosa di significativo per il compilatore), ho un punto di partenza per ulteriori ricerche. –

Problemi correlati