README.txt
1
2VisualStudio instructions
3
4libpng version 1.6.34 - September 29, 2017
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
96Also, be sure to build libpng, zlib, and your project all for the same
97platform (e.g., 32-bit or 64-bit).
98