delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2000/06/15/19:54:55

Mailing-List: contact cygwin-help AT sourceware DOT cygnus DOT com; run by ezmlm
List-Subscribe: <mailto:cygwin-subscribe AT sourceware DOT cygnus DOT com>
List-Archive: <http://sourceware.cygnus.com/ml/cygwin/>
List-Post: <mailto:cygwin AT sourceware DOT cygnus DOT com>
List-Help: <mailto:cygwin-help AT sourceware DOT cygnus DOT com>, <http://sourceware.cygnus.com/ml/#faqs>
Sender: cygwin-owner AT sourceware DOT cygnus DOT com
Delivered-To: mailing list cygwin AT sourceware DOT cygnus DOT com
Message-ID: <41FBEBB67B309B4091A19709617C3BF4487D@TRITON.corp.iapetus.com>
From: Michael Nelson <mikenel AT iapetus DOT com>
To: "'Carl Thompson'" <cet AT carlthompson DOT net>,
Michael Nelson
<mikenel AT iapetus DOT com>
Cc: Cygwin List <cygwin AT sourceware DOT cygnus DOT com>
Subject: RE: Where can I get Cygwin 20.1b?
Date: Thu, 15 Jun 2000 19:55:33 -0400
MIME-Version: 1.0
X-Mailer: Internet Mail Service (5.5.2650.21)
X-OriginalArrivalTime: 15 Jun 2000 23:55:23.0803 (UTC) FILETIME=[2BC92EB0:01BFD725]

> > Use of dllimport is unnecessary, just link with the import lib.
> 
> Really?  Is that true of _all_ Windows compilers?

GCC and VC at least, those are the only two Win32 compilers I've used to a
significant extent.

> Just your externally visible symbols are exposed, not the 
> "guts" .  They are
> all exposed and accessible under Windows too, regardless of what you
> export!  Don't be fooled into thinking that just because you 
> don't put it in
> your export list that it is not exposed. LoadLibrary() and 
> GetProcAddress()
> work just fine regardless of whether or not the symbol was 
> exported to an
> import library!  
> So I hope your company doesn't rely on its 
> DLLs "guts" not
> being exposed simply because you don't put an entry in your 
> .def file...

With VC, if it isn't in a .DEF file or dllexport'd, it isn't accessible via
GPA().

I just double checked all of this, and it seems GCC is a bit more tricky. If
you have 0 symbols marked with dllexport all public symbols get exported. If
you have >0 symbols marked with dllexport, only they get exported.

I think this is where the mixup is.

What I miss on UNIX is the latter feature, the ability it to only export
exactly these symbols. 

-mike

--
Want to unsubscribe from this list?
Send a message to cygwin-unsubscribe AT sourceware DOT cygnus DOT com

- Raw text -


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