From: William S F. <ws...@fu...> - 2007-06-30 09:54:11
|
Rohit wrote: > Hi, > > I was trying to experiment with swig and C#. Here's what I did using a > cygwin shell on Windows. > > file: example.c > > int fact(int n) { > if(n==0) > return 1; > else > return n*fact(n-1); > } > > $ swig -csharp -module example example.c > $ gcc -c example.c example_wrap.c > $ ld -G example.o example_wrap.o -o example.dll > > I then created a visual studio C# project. Which included the following files: > > example.cs > examplePINVOKE.cs > > I added the example.dll as an item to the project and ensured that the > DLL gets copied to the output directory whenever I build the project. > The project also included a .cs file with the main function > > file: Program.cs > > using System; > using System.Collections.Generic; > using System.Text; > > namespace ConsoleApplication2 > { > class Program > { > static void Main(string[] args) > { > Console.WriteLine(example.fact(5)); > } > } > } > > Unfortunately when I build and run the project nothing happens. The > program doesn't seem to proceed forward after the call to > "example.fact". Can anyone help me with this? > > Also, I couldn't find any documentation which ran through an example > of creating a simple wrapper for C#. > The examples in Examples\csharp should work out of the box. They require either visual studio or cygwin. As you are using gcc, make sure that mono or the visual studio command line tools (csc.exe) are in your path when you run configure (to detect a C# compiler). Once you have built SWIG, you can use the Makefile in the appropriate example directory. William |