blob: 2ce02f4dfdabf4c6afdb6b7ddbae2453e3c730d4 [file] [log] [blame]
Glenn Randers-Pehrson810c2e62010-04-24 20:33:42 -05001
2VisualStudio instructions
3
Glenn Randers-Pehrsonb41a37d2014-06-06 18:25:09 -05004libpng version 1.6.12rc01 - June 6, 2014
Glenn Randers-Pehrson810c2e62010-04-24 20:33:42 -05005
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====================
Glenn Randers-Pehrson810c2e62010-04-24 20:33:42 -050018You 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
Glenn Randers-Pehrson810c2e62010-04-24 20:33:42 -050023This 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
Glenn Randers-Pehrson77396b62010-08-02 08:00:10 -050033Linking your application
34========================
35Normally you should link against the 'release' configuration. This builds a
Glenn Randers-Pehrson871b1d02013-03-02 14:58:22 -060036DLL for libpng with the default runtime options used by Visual Studio 2010.
37In particular the runtime library is the "MultiThreaded DLL" version.
Glenn Randers-Pehrson77396b62010-08-02 08:00:10 -050038If 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
Glenn Randers-Pehrson7455cbf2011-11-24 14:40:36 -060043application will crash inside libpng16.dll as soon as libpng tries to read
Glenn Randers-Pehrson77396b62010-08-02 08:00:10 -050044from 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
Glenn Randers-Pehrson810c2e62010-04-24 20:33:42 -050052Stop 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
Glenn Randers-Pehrson871b1d02013-03-02 14:58:22 -060061a special debug build unless you have heap corruption problems that you can't
62track down.)
Glenn Randers-Pehrson810c2e62010-04-24 20:33:42 -050063
Glenn Randers-Pehrson810c2e62010-04-24 20:33:42 -050064The debug build of libpng is minimally supported. Support for debug builds of
65zlib is also minimal. You really don't want to do this.