----- Original Message ----- From: Alfredo José Muela Romero To: Bill Holmes Cc: mono-devel-list@lists.ximian.com Sent: Wednesday, January 14, 2009 2:37 AM Subject: Re: [Mono-dev] PInvoke and language interopelability
2009/1/13 Bill Holmes <billholme...@gmail.com> Alfredo, I may not fully understand the problem. Are you simply asking how to call back into C# from C++? We use 2 different approaches. Function pointers. If you pass a C# delegate through the PInvoke layer C++ will view that as a function pointer. COM Interop. (Only supported on Windows and Linux.) This allows you to marshal a Managed object to C++ which then can call methods on that objects' interface(s). -bill Hi Bill, Yes, your right that's my problem in the simplest words. Sorry not to have explained it so easily :) I guess I'm in your second case, since the extern method (the one in the C++ library) can't be redefined to receive a function pointer instead of a object pointer. Where could I find some examples / info about the solution you talked about? What do you think about the tunned proxy class to get it done with delegates? With that approach I would get more software architectures in the scope, wouldn't I? may or may not matter, but a lot of this falls outside the confines of ECMA-335... second: is it not possible to wrap the method to accept what you can give it?... sadly, I am not sure what mono's C (or C++) level API is like, how it passes objects, or what APIs might be provided for interfacing with objects from C land. but, oh well, the people around here can maybe give info, as I am left wondering some as well. actually, I guess one possiblity (if it works "in general"), could be to look into IKVM, which could potentially give a JNI interface, which could allow getting at the objects contents, invoking methods, ... as noted above, COM is another approach (maybe preferable?...). sadly though, all of this would require wrapping the method in question in one way or another, and I have not personally looked into any of this (actually, as of yet, I have not been able to successfully build mono on my system... which doesn't help some with my "confidence" in the project... but alas part of my complaint is the dependency on glib, not-so-pretty code composing its innards, ...). however, a part of the issue is that non-trivial interaction with native C++ code can get hairy... or such... but, in any case, best of luck... ------------------------------------------------------------------------------ _______________________________________________ Mono-devel-list mailing list Mono-devel-list@lists.ximian.com http://lists.ximian.com/mailman/listinfo/mono-devel-list
_______________________________________________ Mono-devel-list mailing list Mono-devel-list@lists.ximian.com http://lists.ximian.com/mailman/listinfo/mono-devel-list