From: Haoyu B. <div...@gm...> - 2009-03-25 15:03:52
|
On Wed, Mar 25, 2009 at 10:08 PM, Monika Machunik <mon...@gm...> wrote: > Hello > > I had no experience with SWIG. I have downloaded the SWIG release and > tried to follow the instructions from the tutorial (using cygwin). > Although I have just received the output that I was expected, I do not > really understand the way it all worked. My first concern is why did I > have to do so many things to get it all working, and why so many files > are being produced? Why is the user forced to write the interface file > before using the c code, and then compile it manually with gcc, it > looks very inconvinient for me (especially suggested installing of > Microsoft Visual C++ for Windows users). > Another thing is that I ended up with a dll library created - so do I > understand it right: it works in the way that it creates a library for > given operating system, which library provides the same operations as > the initial c code; and the "conversion" is done on the very low > level, by calling "internal" operating system's functions? > Does it mean that for development I would need to operate at this > low-level, do I need to use, for example, linux system calls, or know > how to create a windows dll library (if the library has to support, > for example, this mutliple inheritance..)? > Sorry if my questions are being stupid.. > > Monika Machunik > Dave's slides will answer some of your question and help you understand how SWIG works and why it works in this way. Though the slides is focused on the Python module, the case is similiar for Java. In Java there is JNI ( http://en.wikipedia.org/wiki/Java_Native_Interface ) provides functionality similar to the Python extension API described in Dave's slides. To answer your question clearly, you can read SWIG manual to find out what functions SWIG provided and think about why these are required for interfacing C/C++ to Java. And you can refer to Wikipedia for things like DLL. Bese regards, Haoyu Bai |