This is the mail archive of the cygwin@sourceware.cygnus.com mailing list for the Cygwin project.


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

Re: JNI functions under g++


"JAMES DOYLE" <jdoyle@sarnoff.com> writes:
> Sounds great!  I thought that you had said there was a large
> problem in invoking cygwin-linked DLLs from MSVC-linked apps,
> such as Java.  Did you get around that problem?

I've submitted a patch for this. Unless there is something really
wrong with the implementation, and/or it's a little too late 
for Geoffrey to include it, you can see it in upcoming b20.

> BTW, I found out that my problem with MSVC was that one DLL was deleting
> memory that was newed in a different DLL, which apparently does not
> work at all.  Do you happen to know whether this is normal
> shared library behavior?  It doesn't happen with shared objects
> on Solaris, so I don't know if it's a Windows problem, or just an
> MSVC problem.  Would it happen with cygwin DLLs, do you think?

Boo (I have something much worse in my book, but this is a gentle
public forum after all ;-) the people who designed the abomination
knows as "Windows 32 Dynamic Link Libraries". What you're seeing
is typical of when the runtimes for your DLL and Java are not exactly 
the same. Java uses MSVCRT.DLL, whereas VC++ built apps can be using 
quite a few different DLLs, and the heaps may not be the same.

You might consider defining new/delete for each class and see if that
helps a bit. You'll also need to wrap your other allocs and deallocs
in "object factory" style to guarantee that both actual alloc and 
dealloc happen in the same DLL.

Ah, the joys of ELF shared libraries.

Regards,
Mumit

-
For help on using this list (especially unsubscribing), send a message to
"gnu-win32-request@cygnus.com" with one line of text: "help".


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