|libpng version 1.4.22 - September 28, 2017
|Copyright (c) 2010 Glenn Randers-Pehrson
|This code is released under the libpng license.
|For conditions of distribution and use, see the disclaimer
|and license in png.h
|This directory contains support for building libpng under MicroSoft
|VisualStudio 2010. It may also work under later versions of VisualStudio.
|You should be familiar with VisualStudio before using this directory.
|This is a slightly modified copy of the 'vstudio' solution from libpng
|1.5; it is intended to provide compatibility for libpng 1.4 with later
|releases of zlib (from 1.2.4) and to provide a migration aid for 1.5.
|A 'VB' DLL is no longer produced - use the standard 'Release' DLL.
|You should install the 'official' build of zlib on your system - follow the
|instructions provided on http://www.zlib.net. When a new release is being
|made of zlib the instructions disappear for a while until the new official
|build is available. You will have to wait.
|You must enter some information in zlib.props before attempting to build
|with this 'solution'. Please read and edit zlib.props first. You will
|probably not be familiar with the contents of zlib.props - do not worry,
|it is mostly harmless.
|Make sure that your official build layout matches the requirements listed
|in zlib.props. Prior to zlib-1.2.4 the official build (1.2.3) placed
|include and library files in different directories - if you find this
|has happened just put them all in the same directory.
|This is all you need to do to build the 'release' and 'release library'
|The release configurations default to /Ox optimization. Full debugging
|information is produced (in the .pdb), but if you encounter a problem the
|optimization may make it difficult to debug. Simply rebuild with a lower
|optimization level (e.g. /Od.)
|Stop reading here
|You have enough information to build a working application.
|Debug versions have limited support
|This solution includes limited support for debug versions of libpng. You
|do not need these unless your own solution itself uses debug builds (it is
|far more effective to debug on the release builds, there is no point building
|a special debug build.)
|If, despite the previous paragraph, you still feel you need a debug build you
|will have to download the zlib source as well (http://www.zlib.net) and include
|the directory where you unpack it in zlib.props. This solution will then be
|able to build a minimal zlib sufficient for libpng. This build is only
|suitable for making a debug libpng.
|The debug build of libpng is minimally supported. Support for debug builds of
|zlib is also minimal. You really don't want to do this.
|This solution only supports the Multi-Threaded DLL C Runtime
|If you examine the solution you will find that it very deliberately lists
|exactly which MicroSoft DLLs it is linking against. It explicitly links
|against msvcrt.lib. The debug version links against msvcrtd.lib (this is
|why it is a debug version - it's nothing to do with having any special
|debug support, it doesn't).
|These versions of the MicroSoft C runtime correspond to the compiler flags
|/MD (release) and /MDd (debug) - the "Multi-Threaded DLL" implementation of the
|C runtime library.
|If you need to change this then you will have to make sure that both the
|compiler flags and the ".lib" in the linker dependences match up. Fortunately
|neither zlib nor libpng require libraries other than a C runtime and
|You cannot pass (FILE*) objects from a different runtime (including msvcrtd
|to msvcrt) to libpng. If you do then your program will crash within libpng
|when it first makes a file read or write call.
|It is likely if you have read this far that you have found you can't avoid
|having multiple C runtimes in your program. This is OK, it does work, but
|you will have to implement the libpng file read/write callbacks rather than
|using the internal libpng default. This is easy.