2011-01-31 12 views
10

Patrzę na niektóre C++/CLI kod i widziałem wiele takich stwierdzeń głównie wokół #include s. Co mieli na myśli? Wiem, że oni, zgodnie z MSDN, Enable function-level control for compiling functions as managed or unmanaged. Ale jestem zainteresowany ich wewnętrznej mechaniki zwłaszcza semantyki push i pop. Jeśli ktoś mógłby wyjaśnić, jak działa jedno z tych dwóch zdań, sam to wymyślę.Co oznaczają wyrażenia "#pragma managed (push, off)" i "#pragma managed (pop)"?

Odpowiedz

16
 
#pragma managed(push, off) 

Zestawy udało opcję kompilacji do kodu po tej linii, aby wyłączyć i odkłada na stos wcześniej aktywny udało opcji.

 
#pragma managed(pop) 

Przywraca ostatnio zarządzany stan ze stosu. Kod pomiędzy tymi dwoma wierszami jest skompilowany jako niezarządzany. Kod po linii pop jest kompilowany z tą samą opcją, co przed linią wypychania, czy był zarządzany czy niezarządzany.