blob: 38664638862a586ec1c89233ad9dc6f3c0df7d55 [file] [log] [blame]
Chris Craikb50c2172013-07-29 15:28:30 -07001
2VisualStudio instructions
3
Matt Sarett9ea75692016-01-08 13:00:42 -05004libpng version 1.6.20 - December 3, 2015
Chris Craikb50c2172013-07-29 15:28:30 -07005
6Copyright (c) 1998-2010 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 built
42with the default runtime option (/MD). If, for some reason, it is not then your
43application will crash inside libpng16.dll as soon as libpng tries to read
44from 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.)
51
52Stop reading here
53=================
54You have enough information to build a working application.
55
56Debug versions have limited support
57===================================
58This solution includes limited support for debug versions of libpng. You
59do not need these unless your own solution itself uses debug builds (it is
60far more effective to debug on the release builds, there is no point building
61a special debug build unless you have heap corruption problems that you can't
62track down.)
63
64The debug build of libpng is minimally supported. Support for debug builds of
65zlib is also minimal. You really don't want to do this.