What is the difference between #pragma managed(push, off)
and #pragma managed(push, on)
?
When we need to use #pragma managed(push, on)
instead of #pragma managed(push, off)
?
It's obvious - "off" turns managed code off, "on" - turns it on.
We use #pragma managed(push, on)
when we need to save state and turn it on.
In common case, in header file, we don't know if managed code enabled, so we enable it:
#pragma once
#pragma managed(push, on)
public ref class Foo
{
...
};
#pragma managed(pop)