This is the mail archive of the
java@gcc.gnu.org
mailing list for the Java project.
Re: Accessing GCJ binaries from Visual Basic?
- From: Andrzej Bialecki <ab at getopt dot org>
- To: java at gcc dot gnu dot org
- Date: Thu, 11 Aug 2005 22:45:44 +0200
- Subject: Re: Accessing GCJ binaries from Visual Basic?
- References: <FB3YDC7URLK05D0W2TOPLSPHEVT86.42fb6b18@d9300>
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