Was this page helpful?
Your feedback about this content is important. Let us know what you think.
Additional feedback?
1500 characters remaining
Export (0) Print
Expand All
Important This document may not represent best practices for current development, links to downloads and other resources may no longer be valid. Current recommended version can be found here.

How to: Declare public and private on Native Classes

It is possible for a native type to be referenced from a managed type. For example, a function in a managed type can take a parameter whose type is a native struct. If the managed type and function is public in an assembly, then the native type must also be public.

Example

// mcppv2_ref_class3.h
// native type
public struct N {
   N(){}
   int i;
};

Next, create the source code file that will consume the native type:

// mcppv2_ref_class3.cpp
// compile with: /clr /LD
#include "mcppv2_ref_class3.h"
// public managed type
public ref struct R {
   // public function that takes a native type
   void f(N nn) {}
};

Next, compile a client:

// mcppv2_ref_class4.cpp
// compile with: /clr
#using "mcppv2_ref_class3.dll"

#include "mcppv2_ref_class3.h"

int main() {
   R ^r = gcnew R;
   N n;
   r->f(n);
}

See Also

Community Additions

ADD
Show:
© 2015 Microsoft