This is the mail archive of the java@gcc.gnu.org mailing list for the Java project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Accessing GCJ binaries from Visual Basic?


Mohan Embar wrote:
Hi Andrew,


You can write a DLL wrapper around the gcj code and then call this
DLL from VB.

I see. How would you communicate with it?


So:

- you write your Java/gcj code
- you create a C wrapper API around it which invokes
  the Java code via CNI or JNI
- you build a shared library (DLL) which exports this
  wrapper API

Visual Basic has language constructs which
allow for declaring stub functions which reference
the corresponding ones in the DLL. You then call
these functions from within VB code as you
would any other VB function.

Thanks a lot to all who responded. I can imagine working with CNI in C++, because it's more or less clear to me how to work with class instances in results and arguments, but I'm far less sure how to wrap this to be able to use them from VB and handle complex result types or complex arguments to method calls. Let's say I have a class:


public class Test {
	String a;
	Test link;

	public Test getLink() { return link; }
	public void setLink(Test link) {this.link = link;}
}

The header file Test.h is this:

class Test : public ::java::lang::Object
{
public:
virtual ::Test *getLink () { return link; }
virtual void setLink (::Test *);
Test ();
public: // actually package-private
::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object )))) a;
::Test *link;
public:


  static ::java::lang::Class class$;
};

Now, my question is how should I wrap in VB the return result of getLink(), or handle the argument to setLink method to be able to use them transparently in VB, without re-packaging all results and arguments into VB primitive types?

--
Best regards,
Andrzej Bialecki     <><
 ___. ___ ___ ___ _ _   __________________________________
[__ || __|__/|__||\/|  Information Retrieval, Semantic Web
___|||__||  \|  ||  |  Embedded Unix, System Integration
http://www.sigram.com  Contact: info at sigram dot com


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]