VisualC.html
author David Ludwig <dludwig@pobox.com>
Wed, 25 Dec 2013 21:39:48 -0500
changeset 8563 c0e68f3b6bbb
parent 7338 9962dfd88567
child 8849 1c2c95a5b033
permissions -rw-r--r--
WinRT: compiled the d3d11 renderer's shaders into SDL itself

Previously, the shaders would get compiled separately, the output of which would need to be packaged into the app. This change should make SDL's dll be the only binary needed to include SDL in a WinRT app.
slouken@0
     1
<HTML>
slouken@521
     2
	<HEAD>
slouken@521
     3
		<TITLE>Using SDL with Microsoft Visual C++</TITLE>
slouken@521
     4
	</HEAD>
slouken@521
     5
	<BODY>
slouken@521
     6
		<H1>
slouken@7229
     7
			Using SDL with Microsoft Visual C++
slouken@521
     8
		</H1>
slouken@521
     9
		<H3>
slouken@521
    10
			by <A HREF="mailto:snowlion@sprynet.com">Lion Kimbro </A>and additions by <A HREF="mailto:james@conceptofzero.net">
slouken@521
    11
				James Turk</A>
slouken@521
    12
		</H3>
slouken@521
    13
		<p>
slouken@7229
    14
			You can either use the precompiled libraries from <A HREF="http://www.libsdl.org/download.php"> the SDL Download web site </A>, or you can build SDL yourself.
slouken@521
    15
		</p>
slouken@521
    16
		<H3>
slouken@521
    17
			Building SDL
slouken@521
    18
		</H3>
slouken@521
    19
		<P>
slouken@7229
    20
			Go into the VisualC directory and double-click on the Visual Studio solution for your version of Visual Studio, e.g. <CODE>SDL_VS2008.sln</CODE> This should open up the IDE.
slouken@521
    21
		</P>
slouken@521
    22
		<P>
aschiffler@7314
    23
			There are different solution files for the various
aschiffler@7314
    24
			versions of the IDE. Please use the appropiate version
aschiffler@7314
    25
			2008, 2010 or 2012; the 2010EE and 2012EE files
aschiffler@7314
    26
			should be used with the "Express Edition" releases.
aschiffler@7314
    27
		</P>
aschiffler@7314
    28
		<P>
slouken@521
    29
			Build the <CODE>.dll</CODE> and <CODE>.lib</CODE> files.
slouken@521
    30
		</P>
slouken@521
    31
		<P>
slouken@521
    32
			This is done by right clicking on each project in turn (Projects are listed in 
slouken@521
    33
			the Workspace panel in the FileView tab), and selecting "Build".
slouken@521
    34
		</P>
slouken@521
    35
		<P>
slouken@521
    36
			You may get a few warnings, but you should not get any errors. You do have to 
slouken@7229
    37
			have at least the DirectX 9 SDK installed, however. The latest 
slouken@7229
    38
			version of DirectX can be downloaded from <A HREF="http://www.microsoft.com">Microsoft</A>.
slouken@521
    39
		</P>
slouken@521
    40
		<P>
slouken@521
    41
			Later, we will refer to the following .lib and .dll files that have just been 
slouken@521
    42
			generated:
slouken@521
    43
		</P>
slouken@521
    44
		<ul>
slouken@7229
    45
    <li> SDL2.dll</li>
slouken@7229
    46
    <li> SDL2.lib</li>
slouken@7229
    47
    <li> SDL2main.lib</li>
slouken@521
    48
    </ul>
slouken@521
    49
		<P>
slouken@7229
    50
			Search for these using the Windows Find (Windows-F) utility inside the VisualC directory.
slouken@521
    51
		</P>
slouken@521
    52
		<H3>
slouken@521
    53
			Creating a Project with SDL
slouken@521
    54
		</H3>
slouken@521
    55
		<P>
slouken@521
    56
			Create a project as a Win32 Application.
slouken@521
    57
		</P>
slouken@521
    58
		<P>
slouken@521
    59
			Create a C++ file for your project.
slouken@521
    60
		</P>
slouken@521
    61
		<P>
slouken@521
    62
			Set the C runtime to "Multi-threaded DLL" in the menu: <CODE>Project|Settings|C/C++ 
slouken@521
    63
				tab|Code Generation|Runtime Library </CODE>.
slouken@521
    64
		</P>
slouken@521
    65
		<P>
slouken@521
    66
			Add the SDL <CODE>include</CODE> directory to your list of includes in the 
slouken@521
    67
			menu: <CODE>Project|Settings|C/C++ tab|Preprocessor|Additional include directories </CODE>
slouken@521
    68
			.
slouken@521
    69
			<br>
slouken@521
    70
			<STRONG><FONT color="#009900">VC7 Specific: Instead of doing this I find it easier to 
slouken@521
    71
					add the include and library directories to the list that VC7 keeps. Do this by 
slouken@521
    72
					selecting Tools|Options|Projects|VC++ Directories and under the "Show 
slouken@521
    73
					Directories For:" dropbox select "Include Files", and click the "New Directory 
philipp@7338
    74
					Icon" and add the [SDLROOT]\include directory (e.g. If you installed to 
philipp@7338
    75
					c:\SDL\ add c:\SDL\include).&nbsp;Proceed to&nbsp;change the 
slouken@521
    76
					dropbox selection to "Library Files" and add [SDLROOT]\lib.</FONT></STRONG>
slouken@521
    77
		</P>
slouken@521
    78
			<P>
slouken@521
    79
				The "include directory" I am referring to is the <CODE>include</CODE> folder 
slouken@521
    80
				within the main SDL directory (the one that this HTML file located within).
slouken@521
    81
			</P>
slouken@521
    82
			<P>
slouken@521
    83
				Now we're going to use the files that we had created earlier in the Build SDL 
slouken@521
    84
				step.
slouken@521
    85
			</P>
slouken@521
    86
			<P>
slouken@521
    87
				Copy the following files into your Project directory:
slouken@521
    88
			</P>
slouken@521
    89
			<ul>
slouken@7229
    90
     <li> SDL2.dll</li>
slouken@521
    91
     </ul>
slouken@521
    92
			<P>
slouken@521
    93
				Add the following files to your project (It is not necessary to copy them to 
slouken@521
    94
				your project directory):
slouken@521
    95
			</P>
slouken@521
    96
			<ul>
slouken@7229
    97
     <li> SDL2.lib </li>
slouken@7229
    98
     <li> SDL2main.lib</li>
slouken@521
    99
     </ul>
slouken@521
   100
			<P>
slouken@521
   101
				(To add them to your project, right click on your project, and select "Add 
slouken@521
   102
				files to project")
slouken@521
   103
			</P>
slouken@521
   104
		<P><STRONG><FONT color="#009900">Instead of adding the files to your project it is more 
slouken@521
   105
					desireable to add them to the linker options: Project|Properties|Linker|Command 
slouken@521
   106
					Line and type the names of the libraries to link with in the "Additional 
slouken@521
   107
					Options:" box.&nbsp; Note: This must be done&nbsp;for&nbsp;each&nbsp;build 
philipp@7338
   108
					configuration (e.g. Release,Debug).</FONT></STRONG></P>
slouken@521
   109
		<H3>
slouken@521
   110
			SDL 101, First Day of Class
slouken@521
   111
		</H3>
slouken@521
   112
		<P>
slouken@521
   113
			Now create the basic body of your project. The body of your program should take 
slouken@521
   114
			the following form: <CODE>
slouken@521
   115
				<PRE>
philipp@7338
   116
#include "SDL.h"
slouken@0
   117
slouken@0
   118
int main( int argc, char* argv[] )
slouken@0
   119
{
slouken@0
   120
  // Body of the program goes here.
slouken@0
   121
  return 0;
slouken@0
   122
}
slouken@0
   123
</PRE>
slouken@521
   124
			</CODE>
slouken@521
   125
		<P></P>
slouken@521
   126
		<H3>
slouken@521
   127
			That's it!
slouken@521
   128
		</H3>
slouken@521
   129
		<P>
slouken@521
   130
			I hope that this document has helped you get through the most difficult part of 
slouken@521
   131
			using the SDL: installing it. Suggestions for improvements to this document 
slouken@521
   132
			should be sent to the writers of this document.
slouken@521
   133
		</P>
slouken@521
   134
		<P>
slouken@521
   135
			Thanks to Paulus Esterhazy (pesterhazy@gmx.net), for the work on VC++ port.
slouken@521
   136
		</P>
slouken@521
   137
		<P>
slouken@521
   138
			This document was originally called "VisualC.txt", and was written by <A HREF="mailto:slouken@libsdl.org">
slouken@521
   139
				Sam Lantinga</A>.
slouken@521
   140
		</P>
slouken@521
   141
		<P>
slouken@521
   142
			Later, it was converted to HTML and expanded into the document that you see 
slouken@521
   143
			today by <A HREF="mailto:snowlion@sprynet.com">Lion Kimbro</A>.
slouken@521
   144
		</P>
slouken@521
   145
		<P>Minor Fixes and Visual C++ 7 Information (In Green) was added by <A HREF="mailto:james@conceptofzero.net">James Turk</A>
slouken@521
   146
		</P>
slouken@521
   147
	</BODY>
slouken@0
   148
</HTML>