| delorie.com/archives/browse.cgi | search |
| Mailing-List: | contact cygwin-help AT sourceware DOT cygnus DOT com; run by ezmlm |
| List-Subscribe: | <mailto:cygwin-subscribe AT sources DOT redhat DOT com> |
| List-Archive: | <http://sources.redhat.com/ml/cygwin/> |
| List-Post: | <mailto:cygwin AT sources DOT redhat DOT com> |
| List-Help: | <mailto:cygwin-help AT sources DOT redhat DOT com>, <http://sources.redhat.com/ml/#faqs> |
| Sender: | cygwin-owner AT sources DOT redhat DOT com |
| Delivered-To: | mailing list cygwin AT sources DOT redhat DOT com |
| X-Envelope-Sender-Is: | Andrej DOT Borsenkow AT mow DOT siemens DOT ru (at relayer david.siemens.de) |
| Date: | Sun, 13 May 2001 13:43:18 +0400 (MSD) |
| From: | Andrej Borsenkow <Andrej DOT Borsenkow AT mow DOT siemens DOT ru> |
| X-X-Sender: | <bor AT itsrm2 DOT mow DOT siemens DOT ru> |
| To: | Jesper Eskilson <jojo AT virtutech DOT com> |
| cc: | Alan Hourihane <alanh AT fairlite DOT demon DOT co DOT uk>, <cygwin AT cygwin DOT com> |
| Subject: | Re: function pointers & DLL's |
| In-Reply-To: | <Pine.WNT.4.33.0105131119550.2408-100000@LEIA> |
| Message-ID: | <Pine.SV4.4.33.0105131338230.23635-100000@itsrm2.mow.siemens.ru> |
| MIME-Version: | 1.0 |
On Sun, 13 May 2001, Jesper Eskilson wrote:
> On Sun, 6 May 2001, Alan Hourihane wrote:
>
> > Everything works fine. But what I'm trying to do is find a way at the linker
> > stage that negates me having to make these __declspec statements. Is there
> > any way this is possible ?
>
> For VC++ (at least) __declspec(dllimport) is purely optional and never
> required. The only this they do is to enable the compiler to skip an
> indirection in the jump and generate a slightly more efficient jump.
>
For GCC (at least :-) __declspec(dllimport) is optional for functions but
is mandatory for variables. The side-effect of the above is, that function
address is no more static and cannot be used as static initializer, e.g.
in function dispatch table like
extern __declspec(dllimport) foo();
static dispatch tbl = {
...
foo,
...
}
That is clear, because __declspec(dllimport) basically replaces any
reference to an object by a thunk that returns object's address.
-andrej
--
Want to unsubscribe from this list?
Check out: http://cygwin.com/ml/#unsubscribe-simple
| webmaster | delorie software privacy |
| Copyright © 2019 by DJ Delorie | Updated Jul 2019 |