[Mono-list] Interop

William S Fulton wsf@fultondesigns.co.uk
Mon, 10 Jan 2005 22:47:51 +0000


SWIG has automated support for calling unmanaged code from managed code. 
Currently there is no automated support for wrapping C function pointers 
and making callbacks to managed code using delegates. However, if you 
have a large library you want to wrap, you can provide code manually to 
do this using SWIG typemaps and features. This can be a bit fiddly to 
set up but if you have lots of code to wrap SWIG is very powerful.

William

Javier Miguel Gonzalez wrote:
> Hello John,
> 
> Did you mean that I can call SWIG to create a c++ wrapper for a Mono dll
> (managed)?
> 
> I was searching swig.org but I only see methods to create managed code to
> call c++ (unmanaged)...
> 
> Do you know where can I find an example/doc about how to do it?
> 
> Regards
> 
> Javier Miguel
> 
>>-----Mensaje original-----
>>De: John Lenz [mailto:lenz@cs.wisc.edu]
>>Enviado el: martes, 14 de diciembre de 2004 19:41
>>Para: Javier Miguel Gonzalez
>>CC: mono-list@lists.ximian.com
>>Asunto: Re: [Mono-list] Interop
>>
>>
>>On 12/14/04 09:50:55, Javier Miguel Gonzalez wrote:
>>>>>I want to call a .Net function (in a class) from unmanaged
>>>>code, like VC+
>>>>>+
>>>>>6
>>>>>or Delphi 7.
>>>>>
>>>>>Do you know if it is possible?
>>>>>
>>>>>Are there something like JNI in .Net?
>>>>>
>>>>>I have read this articles:
>>>>>
>>>>>
>>>>http://www.blong.com/Conferences/BorCon2004/Interop1/Win32AndD
>>>otNetInterop.h
>>>>tm#InversePInvoke
>>>>
>>>>http://www.codeproject.com/csharp/Win32_to_NET.asp
>>>>
>>>>...but I feel that this methods are not so much standard.
>>>>
>>>>Are in Mono something better to do it than in MS .Net Framework?
>>>>You could also check out SWIG at http://www.swig.org,
>>which has C# support
>>>>and works with the Microsoft runtime, mono, and
>>Portable.NET.  There are a
>>>>lot of examples on wrapping code provided by SWIG as well.
>>>>
>>>>John
>>>Will Swig allow a VB6 or Delphi7 developer call a function
>>within a managed
>>>dll/so library?
>>>
>>I don't actually know about C#, but I assume so.  I use SWIG for the
>>guile and python languages, and it allows C code to call into guile
>>and python code.  I assume C# wouldn't be any different.  If you can,
>>I would go with SWIG since it automates all that repetitive code you
>>need to write.
>>
>>I am almost certain that you are going to need to call
>>Delphi or VB6 -> C -> C#
>>and SWIG would take care of the C -> C# part.
>>
>>By the way, SWIG uses PInvoke.  SWIG is just a tool that generates
>>all the Pinvoke code for you, so you don't need to write it yourself.
>>
>>John
>>
>>
> 
> _______________________________________________
> Mono-list maillist  -  Mono-list@lists.ximian.com
> http://lists.ximian.com/mailman/listinfo/mono-list
>