Several options are available:
- Swig
- This mechanism called "ctor" is not a real derivation, but just looks like it.
- The class in C # Only wraps the pointer of a C ++ object. all calls are completed through P/invoke, which is actually two different objects.
- CXXI
- Implement derivation by changing the vtable of the c ++ object
- Obtain the function pointer using the Export Method Name of DLL (SO)
- Parse gccxml to generate C # declaration of c ++ class
- Msvc support is not complete yet. You can refer to this to improve: Inheriting from a native C ++ class in C #
- [Hack]
- After embedding mono, you can use the C ++ class to call the method of the class with the same name on the C # side.
- It is also a false derivation, which is actually two objects.
- Exception Handling can be performed on calls to the C # method on the C ++ side to prevent crashes.