delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2001/02/05/22:10:32

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
Message-ID: <3A7F6B8F.12FEE418@ece.gatech.edu>
Date: Mon, 05 Feb 2001 22:12:15 -0500
From: Charles Wilson <cwilson AT ece DOT gatech DOT edu>
X-Mailer: Mozilla 4.75 [en] (Windows NT 5.0; U)
X-Accept-Language: en
MIME-Version: 1.0
To: soren AT wonderstorm DOT com, cygwin AT sources DOT redhat DOT com
Subject: Re: [ANNOUNCEMENT] Updated: libpng-1.0.9-3
References: <3A7EE170 DOT 28933 DOT 16BE7650 AT localhost> <3A7F5F20 DOT CB6659F8 AT ece DOT gatech DOT edu>

Charles Wilson wrote:
> 
> Can't be done.  (Well, you have to hack pngcrush.c pretty heavily -- and
> probably have to custom-build a libpng.dll).  The problem is that
> pngcrush is not really an "external" program -- it's developed by one of
> the main forces in libpng development, and uses non-exported functions
> from the library.  This doesn't matter on unix with shared libs (there
> are no "hidden" functions) and it doesn't matter with static libs.  But
> with windows dll's it makes a difference.

Well, actually this might not work with 1.0.9 on any platform.  From
pngconf.h (and pngcrush.c #define's PNG_INTERNAL):


#ifdef PNG_INTERNAL
#include <stdlib.h>
/* The functions exported by PNG_EXTERN are PNG_INTERNAL functions,
which
 * aren't usually used outside the library (as far as I know), so it is
 * debatable if they should be exported at all.  In the future, when it
is
 * possible to have run-time registry of chunk-handling functions, some
of
 * these will be made available again.
#define PNG_EXTERN extern
 */
#define PNG_EXTERN

Guess how all your missing functions are declared?  Yup -- PNG_EXTERN. 
So not only are they not __declspec(dllimport/dllexport), they aren't
even extern'ed.

--Chuck

--
Want to unsubscribe from this list?
Check out: http://cygwin.com/ml/#unsubscribe-simple

- Raw text -


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