comp.lang.ada
 help / color / mirror / Atom feed
From: Alfred Hilscher <Spam@alfred-hilscher.de>
Subject: Re: GNAT, Windows, DLLs
Date: Thu, 29 May 2003 15:10:47 +0200
Date: 2003-05-29T15:10:47+02:00	[thread overview]
Message-ID: <3ED606D7.E0153A4F@alfred-hilscher.de> (raw)
In-Reply-To: bb4j23$5juvr$2@ID-77047.news.dfncis.de

Many thanks, this may help me.


"Dmitry A. Kazakov" schrieb:
> 
> Jano wrote:
> 
> > Robert A Duff dice...
> >> Alfred Hilscher <Spam@alfred-hilscher.de> writes:
> >>
> >> > I have the follwing problem: In gnat_ug it is said, that the code has
> >> > to call _ada_initialize first and _ada_finalize at last. But - my DLL
> >> > shall replace an existing third party DLL. So the applications using
> >> > this DLL are not Ada-aware, and there is no way to tell them "hey the
> >> > DLL is replaced, you have to call now an initialize-procedure first,
> >> > and you must call this finalize-procedure at the end". So is there a
> >> > way to make this initializing/finalizing transparent?
> >>
> >> I don't know.  Surely there's some way to attach initialization code to
> >> a DLL?
> >
> > I don't remember the details, but I've done it in the past. DLLs have
> > such initialization/finalization entry points, called if present
> > automatically by the OS, and there is the best place to place these
> > procedure calls.
> 
> The word "DLL" lets me suppose that it is about Windows. If so, then DllMain
> procedure is called each time a process loads/unloads DLL. It has a
> parameter to indicate the action (see MSDN DllMain).
> 
> But beware:
> 
> 1. DllMain is called within a critical section. Many system operations will
> hang, no other threads running while you are in.
> 
> 2. DllMain is not called when process gets aborted. It is one of (many)
> reasons why the button "Reset" is so useful under Windows.
> 
> Enjoy Windows programming!
> 
> --
> Regards,
> Dmitry A. Kazakov
> www.dmitry-kazakov.de



      reply	other threads:[~2003-05-29 13:10 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-05-28 18:05 GNAT, Windows, DLLs Alfred Hilscher
2003-05-28 17:39 ` Robert A Duff
2003-05-28 18:14   ` Jano
2003-05-29  9:17     ` Dmitry A. Kazakov
2003-05-29 13:10       ` Alfred Hilscher [this message]
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox