2011-01-31 3 views
10

Sto guardando un codice C++/CLI e ho visto molte di queste affermazioni per lo più intorno a #include s. Cosa vogliono dire? So che, secondo MSDN, Enable function-level control for compiling functions as managed or unmanaged., ma sono interessato ai loro meccanismi interni, in particolare la semantica push e pop. Se qualcuno potrebbe spiegare come funziona una delle due affermazioni, anch'io cercherò l'altra.Cosa significano le affermazioni "#pragma managed (push, off)" e "#pragma managed (pop)"?

risposta

16
 
#pragma managed(push, off) 

insiemi riusciti opzione di compilazione di codice dopo questa riga off, e spinge la pila opzione gestiti precedentemente attivo.

 
#pragma managed(pop) 

Ripristina l'ultimo stato gestito dallo stack. Il codice tra queste due linee è compilato come non gestito. Il codice dopo la riga pop viene compilato con la stessa opzione, come prima della riga di comando, se era gestita o non gestita.