comp.lang.ada
 help / color / mirror / Atom feed
From: "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de>
Subject: Re: GNAT, Windows, DLLs
Date: Thu, 29 May 2003 11:17:09 +0200
Date: 2003-05-29T11:17:09+02:00	[thread overview]
Message-ID: <bb4j23$5juvr$2@ID-77047.news.dfncis.de> (raw)
In-Reply-To: MPG.193f1afcd15bcb2d98970e@News.CIS.DFN.DE

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  9:17 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 [this message]
2003-05-29 13:10       ` Alfred Hilscher
replies disabled

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