1 2VisualStudio instructions 3 4libpng version 1.6.22beta03 - February 8, 2016 5 6Copyright (c) 2010,2013,2015 Glenn Randers-Pehrson 7 8This code is released under the libpng license. 9For conditions of distribution and use, see the disclaimer 10and license in png.h 11 12This directory contains support for building libpng under MicroSoft 13VisualStudio 2010. It may also work under later versions of VisualStudio. 14You should be familiar with VisualStudio before using this directory. 15 16Initial preparations 17==================== 18You must enter some information in zlib.props before attempting to build 19with this 'solution'. Please read and edit zlib.props first. You will 20probably not be familiar with the contents of zlib.props - do not worry, 21it is mostly harmless. 22 23This is all you need to do to build the 'release' and 'release library' 24configurations. 25 26Debugging 27========= 28The release configurations default to /Ox optimization. Full debugging 29information is produced (in the .pdb), but if you encounter a problem the 30optimization may make it difficult to debug. Simply rebuild with a lower 31optimization level (e.g. /Od.) 32 33Linking your application 34======================== 35Normally you should link against the 'release' configuration. This builds a 36DLL for libpng with the default runtime options used by Visual Studio 2010. 37In particular the runtime library is the "MultiThreaded DLL" version. 38If you use Visual Studio defaults to build your application you will have no 39problems. 40 41If you don't use the Visual Studio defaults your application must still be 42built with the default runtime option (/MD). If, for some reason, it is not 43then your application will crash inside libpng16.dll as soon as libpng 44tries to read from a file handle you pass in. 45 46If you do not want to use the DLL, for example for a very small application, 47the 'release library' configuration may be more appropriate. This is built 48with a non-standard runtime library - the "MultiThreaded" version. When you 49build your application it must be compiled with this option (/MT), otherwise 50it will not build (if you are lucky) or crash (if you are not.) See the 51WARNING file that is distributed along with this readme.txt. 52 53Stop reading here 54================= 55You have enough information to build a working application. 56 57Debug versions have limited support 58=================================== 59This solution includes limited support for debug versions of libpng. You 60do not need these unless your own solution itself uses debug builds (it is 61far more effective to debug on the release builds, there is no point building 62a special debug build unless you have heap corruption problems that you can't 63track down.) 64 65The debug build of libpng is minimally supported. Support for debug builds of 66zlib is also minimal. You really don't want to do this. 67 68WARNING 69======= 70Libpng 1.6.x does not use the default run-time library when building static 71library builds of libpng; instead of the shared DLL runtime it uses a static 72runtime. If you need to change this make sure to change the setting on all the 73relevant projects: 74 75 libpng 76 zlib 77 all the test programs 78 79The runtime library settings for each build are as follows: 80 81 Release Debug 82 DLL /MD /MDd 83 Library /MT /MTd 84 85NOTICE that libpng 1.5.x erroneously used /MD for Debug DLL builds; if you used 86the debug builds in your app and you changed your app to use /MD you will need 87to change it back to /MDd for libpng 1.6.0 and later. 88 89The Visual Studio 2010 defaults for a Win32 DLL or Static Library project are 90as follows: 91 92 Release Debug 93 DLL /MD /MDd 94 Static Library /MD /MDd 95 96