On Tue, Dec 12, 2017 at 7:38 PM, Gavin Lambert via Boost-users
On 13/12/2017 02:52, Michael Powell wrote:
I have a native (unmanaged) C++ application that consumes a C# SDK using a C++/CLI wrapper. This is achieved using a wrapper similar to the one described here: http://pragmateek.com/using-c-from-native-c-with-the-help-of-ccli-v2/
You have the bridge entirely backwards. CLI does not bridge C# to C++. Rather, it bridges C++ to CLI.
It is true that the main intent of C++/CLI is to allow you to more easily call native code from a managed application, rather than the reverse.
But the bridge can be used both ways, although there are some caveats related to AppDomains, decompilers, delegates, and garbage collection, which can surprise people.
You also need to be really careful about what things you put in header files when they are being shared between native and managed code.
If, by "caveats", you mean being careful to do native things in an otherwise CLI/.NET/managed environment, I agree. That was never CLI's purpose, however, as far as I know it's history to be. They've even gone as far as to provide "managed" collections support for the "native" C++, etc, to give you an idea. Cheers. Good luck!
_______________________________________________ Boost-users mailing list Boost-users@lists.boost.org https://lists.boost.org/mailman/listinfo.cgi/boost-users