Что означают выражения "#pragma managed (push, off)" и "#pragma managed (pop)"? - PullRequest
12 голосов
/ 31 января 2011

Я смотрю на некоторый код C ++ / CLI и видел много таких утверждений, в основном около #include s.Что они имеют в виду?Я знаю, что они, согласно MSDN, Enable function-level control for compiling functions as managed or unmanaged. Но меня интересует их внутренняя механика, особенно семантика push и pop.Если кто-то сможет объяснить, как работает одно из двух утверждений, я сам выясню другое.

Ответы [ 2 ]

18 голосов
/ 31 января 2011
#pragma managed(push, off)

Устанавливает параметр управляемой компиляции для кода после выключения этой строки и помещает в стек ранее активную управляемую опцию.

#pragma managed(pop)

Восстанавливает последнее управляемое состояние из стека. Код между этими двумя строками компилируется как неуправляемый. Код после всплывающей строки компилируется с той же опцией, что и до push-строки, независимо от того, была она управляемой или неуправляемой.

2 голосов
/ 31 января 2011

Он сообщает компилятору C ++, когда он используется с ключом / clr, для создания этих методов между push и pop как управляемый код.

http://msdn.microsoft.com/en-us/library/0adb9zxe(v=vs.80).aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...