How to: Hold Reference to Value Type in Native Type

Use gcroot on the boxed type to hold a reference to a value type in a native type.


// reference_to_value_in_native.cpp
// compile with: /clr
#using <mscorlib.dll>
#include <vcclr.h> 

using namespace System; 

public value struct V {
   String ^str;

class Native {
   gcroot< V^ > v_handle;

int main() {
   Native native;
   V v;
   native.v_handle = v;
   native.v_handle->str = "Hello";
   Console::WriteLine("String in V: {0}", native.v_handle->str);

String in V: Hello

See Also


Using C++ Interop (Implicit PInvoke)