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 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 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> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit 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 /* 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