delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/1998/10/20/20:27:25

From: mickish AT cmu DOT edu (Andrew Mickish)
Subject: Re: B19 dll with JNI causing Dr. Watson to drop by...
20 Oct 1998 20:27:25 -0700 :
Message-ID: <362C8938.5971084C.cygnus.gnu-win32@cmu.edu>
References: <m0zV73B-0002i9C AT jacob DOT remcomp DOT fr>
Mime-Version: 1.0
To: root <root AT jacob DOT remcomp DOT fr>, gnu-win32 AT cygnus DOT com


root wrote:

> >
> > I am using g++ version egcs-2.91.57 (1.1 release) on NT4 (SP3) to create a
> > dll that is called from my Java program through JNI.  My problem is that
> > my Java app can call the C++ routine ok, but Dr. Watson pops up in the
> > following cases:
> >
> > 1. Initializing anything with new or malloc
> > 2. Calling another c++ routine that allocates any memory as in above
> >
> You should initialize your run time when your library is loaded, and clean-up
> when it is unloaded.
> In your LibMain procedure, you should treat the case
>         DLL_PROCESS_ATTACH:
> and call the specific run time initialization there.
> In the same way, you should handle:
>         DLL_PROCESS_DETTACH:
> and call the runtime cleanup routines.
>
> This is just basic win32 programming. Read any documentation about dlls and
> you will find this.

Why are there so many more intitialization steps and convoluted makefile
dependencies (e.g., init.cc) for generating DLLs from gcc than from Visual C++?
I have generated many successfull DLLs from VC++ just by exporting functions and
not worrying about initialization and entry points.  Can't gcc be enhanced
somehow to produce DLLs as effortlessly?

--Andrew Mickish
  http://www.andrew.cmu.edu/~am2q/



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

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019