1b50c217251b086440efcdb273c22f86a06c80cbaChris Craik 2b50c217251b086440efcdb273c22f86a06c80cbaChris CraikVisualStudio instructions 3b50c217251b086440efcdb273c22f86a06c80cbaChris Craik 4b478e66e7c2621eef5f465e4629ce642db00716bSireesh Tripurarilibpng version 1.6.10 - March 6, 2014 5b50c217251b086440efcdb273c22f86a06c80cbaChris Craik 6b50c217251b086440efcdb273c22f86a06c80cbaChris CraikCopyright (c) 1998-2010 Glenn Randers-Pehrson 7b50c217251b086440efcdb273c22f86a06c80cbaChris Craik 8b50c217251b086440efcdb273c22f86a06c80cbaChris CraikThis code is released under the libpng license. 9b50c217251b086440efcdb273c22f86a06c80cbaChris CraikFor conditions of distribution and use, see the disclaimer 10b50c217251b086440efcdb273c22f86a06c80cbaChris Craikand license in png.h 11b50c217251b086440efcdb273c22f86a06c80cbaChris Craik 12b50c217251b086440efcdb273c22f86a06c80cbaChris CraikThis directory contains support for building libpng under MicroSoft 13b50c217251b086440efcdb273c22f86a06c80cbaChris CraikVisualStudio 2010. It may also work under later versions of VisualStudio. 14b50c217251b086440efcdb273c22f86a06c80cbaChris CraikYou should be familiar with VisualStudio before using this directory. 15b50c217251b086440efcdb273c22f86a06c80cbaChris Craik 16b50c217251b086440efcdb273c22f86a06c80cbaChris CraikInitial preparations 17b50c217251b086440efcdb273c22f86a06c80cbaChris Craik==================== 18b50c217251b086440efcdb273c22f86a06c80cbaChris CraikYou must enter some information in zlib.props before attempting to build 19b50c217251b086440efcdb273c22f86a06c80cbaChris Craikwith this 'solution'. Please read and edit zlib.props first. You will 20b50c217251b086440efcdb273c22f86a06c80cbaChris Craikprobably not be familiar with the contents of zlib.props - do not worry, 21b50c217251b086440efcdb273c22f86a06c80cbaChris Craikit is mostly harmless. 22b50c217251b086440efcdb273c22f86a06c80cbaChris Craik 23b50c217251b086440efcdb273c22f86a06c80cbaChris CraikThis is all you need to do to build the 'release' and 'release library' 24b50c217251b086440efcdb273c22f86a06c80cbaChris Craikconfigurations. 25b50c217251b086440efcdb273c22f86a06c80cbaChris Craik 26b50c217251b086440efcdb273c22f86a06c80cbaChris CraikDebugging 27b50c217251b086440efcdb273c22f86a06c80cbaChris Craik========= 28b50c217251b086440efcdb273c22f86a06c80cbaChris CraikThe release configurations default to /Ox optimization. Full debugging 29b50c217251b086440efcdb273c22f86a06c80cbaChris Craikinformation is produced (in the .pdb), but if you encounter a problem the 30b50c217251b086440efcdb273c22f86a06c80cbaChris Craikoptimization may make it difficult to debug. Simply rebuild with a lower 31b50c217251b086440efcdb273c22f86a06c80cbaChris Craikoptimization level (e.g. /Od.) 32b50c217251b086440efcdb273c22f86a06c80cbaChris Craik 33b50c217251b086440efcdb273c22f86a06c80cbaChris CraikLinking your application 34b50c217251b086440efcdb273c22f86a06c80cbaChris Craik======================== 35b50c217251b086440efcdb273c22f86a06c80cbaChris CraikNormally you should link against the 'release' configuration. This builds a 36b50c217251b086440efcdb273c22f86a06c80cbaChris CraikDLL for libpng with the default runtime options used by Visual Studio 2010. 37b50c217251b086440efcdb273c22f86a06c80cbaChris CraikIn particular the runtime library is the "MultiThreaded DLL" version. 38b50c217251b086440efcdb273c22f86a06c80cbaChris CraikIf you use Visual Studio defaults to build your application you will have no 39b50c217251b086440efcdb273c22f86a06c80cbaChris Craikproblems. 40b50c217251b086440efcdb273c22f86a06c80cbaChris Craik 41b50c217251b086440efcdb273c22f86a06c80cbaChris CraikIf you don't use the Visual Studio defaults your application must still be built 42b50c217251b086440efcdb273c22f86a06c80cbaChris Craikwith the default runtime option (/MD). If, for some reason, it is not then your 43b50c217251b086440efcdb273c22f86a06c80cbaChris Craikapplication will crash inside libpng16.dll as soon as libpng tries to read 44b50c217251b086440efcdb273c22f86a06c80cbaChris Craikfrom a file handle you pass in. 45b50c217251b086440efcdb273c22f86a06c80cbaChris Craik 46b50c217251b086440efcdb273c22f86a06c80cbaChris CraikIf you do not want to use the DLL, for example for a very small application, 47b50c217251b086440efcdb273c22f86a06c80cbaChris Craikthe 'release library' configuration may be more appropriate. This is built 48b50c217251b086440efcdb273c22f86a06c80cbaChris Craikwith a non-standard runtime library - the "MultiThreaded" version. When you 49b50c217251b086440efcdb273c22f86a06c80cbaChris Craikbuild your application it must be compiled with this option (/MT), otherwise 50b50c217251b086440efcdb273c22f86a06c80cbaChris Craikit will not build (if you are lucky) or crash (if you are not.) 51b50c217251b086440efcdb273c22f86a06c80cbaChris Craik 52b50c217251b086440efcdb273c22f86a06c80cbaChris CraikStop reading here 53b50c217251b086440efcdb273c22f86a06c80cbaChris Craik================= 54b50c217251b086440efcdb273c22f86a06c80cbaChris CraikYou have enough information to build a working application. 55b50c217251b086440efcdb273c22f86a06c80cbaChris Craik 56b50c217251b086440efcdb273c22f86a06c80cbaChris CraikDebug versions have limited support 57b50c217251b086440efcdb273c22f86a06c80cbaChris Craik=================================== 58b50c217251b086440efcdb273c22f86a06c80cbaChris CraikThis solution includes limited support for debug versions of libpng. You 59b50c217251b086440efcdb273c22f86a06c80cbaChris Craikdo not need these unless your own solution itself uses debug builds (it is 60b50c217251b086440efcdb273c22f86a06c80cbaChris Craikfar more effective to debug on the release builds, there is no point building 61b50c217251b086440efcdb273c22f86a06c80cbaChris Craika special debug build unless you have heap corruption problems that you can't 62b50c217251b086440efcdb273c22f86a06c80cbaChris Craiktrack down.) 63b50c217251b086440efcdb273c22f86a06c80cbaChris Craik 64b50c217251b086440efcdb273c22f86a06c80cbaChris CraikThe debug build of libpng is minimally supported. Support for debug builds of 65b50c217251b086440efcdb273c22f86a06c80cbaChris Craikzlib is also minimal. You really don't want to do this. 66