Mailing-List: contact cygwin-help AT sourceware DOT cygnus DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , 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 To: "'Carl Thompson'" , Michael Nelson Cc: Cygwin List 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) Content-Type: text/plain; charset="iso-8859-1" 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