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)"?
10
A
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.
1
Indica al compilatore C++, se utilizzato con l'opzione/clr, di creare quei metodi tra un push e un pop come codice gestito.
http://msdn.microsoft.com/en-us/library/0adb9zxe(v=vs.80).aspx