C
Chris Uppal
FamilyNet International Newsgate
From: "Chris Uppal" <[email protected]>
Boy! You're no fan of the simple life are you ?
;-)
I haven't done /anything/ with "managed C++", so take the rest of this with due
caution.
For a start, I wouldn't mess with the declarations the SUN provide -- they are
carefully designed to allow the JVM to access stuff at a lower level than
"portable C" (or C++). I.e. it knows about memory layouts and other such
stuff. So what I would do, as a first attempt, would be to write a bridge
component -- entirely in /real/ C++ (compiled to a normal, not .NET, DLL).
That component would do all the talking to JNI. I would then create a .NET
interface to that DLL, using the unmanaged C++ features.
A lot of work, and maybe not necessary, but I'd be rather surprised to find
that anything less complicated actually worked.
However, even that might not work. There is no guarantee that the Sun JVM and
the .NET equivalent will be happy sharing an address space. They both use very
low-level features of the OS (like setting guard pages, directly accessing the
processor stack, and so on) and might easily end up stepping on each other's
feet.
-- chris
FamilyNet <> Internet Gated Mail
http://www.familynet-international.org
From: "Chris Uppal" <[email protected]>
Hey, I'm working with a Java Native Interface from managed C++
Boy! You're no fan of the simple life are you ?
;-)
I haven't done /anything/ with "managed C++", so take the rest of this with due
caution.
For a start, I wouldn't mess with the declarations the SUN provide -- they are
carefully designed to allow the JVM to access stuff at a lower level than
"portable C" (or C++). I.e. it knows about memory layouts and other such
stuff. So what I would do, as a first attempt, would be to write a bridge
component -- entirely in /real/ C++ (compiled to a normal, not .NET, DLL).
That component would do all the talking to JNI. I would then create a .NET
interface to that DLL, using the unmanaged C++ features.
A lot of work, and maybe not necessary, but I'd be rather surprised to find
that anything less complicated actually worked.
However, even that might not work. There is no guarantee that the Sun JVM and
the .NET equivalent will be happy sharing an address space. They both use very
low-level features of the OS (like setting guard pages, directly accessing the
processor stack, and so on) and might easily end up stepping on each other's
feet.
-- chris
FamilyNet <> Internet Gated Mail
http://www.familynet-international.org