docs/Readme_Windows_MSVC.txt
author celestar
Mon, 01 Jan 2007 16:31:13 +0000
branchcustombridgeheads
changeset 5623 ef2a8a524a95
parent 5592 fd60d4ecc921
child 5645 72ebd9e4cd64
permissions -rw-r--r--
(svn r7721) [cbh] - Sync with 7607:7720 from trunk
5592
fd60d4ecc921 (svn r7608) [cbh] - Merge with trunk r7593:7607 because I need 7607 here
celestar
parents: 5355
diff changeset
     1
Compiling OpenTTD using Microsoft Visual C++
fd60d4ecc921 (svn r7608) [cbh] - Merge with trunk r7593:7607 because I need 7607 here
celestar
parents: 5355
diff changeset
     2
December 28, 2006
fd60d4ecc921 (svn r7608) [cbh] - Merge with trunk r7593:7607 because I need 7607 here
celestar
parents: 5355
diff changeset
     3
--------------------------------------------
fd60d4ecc921 (svn r7608) [cbh] - Merge with trunk r7593:7607 because I need 7607 here
celestar
parents: 5355
diff changeset
     4
PLEASE READ THE ENTIRE DOCUMENT BEFORE DOING ANY ACTUAL CHANGES!!
844
f1cae32ae8af (svn r1325) -Fixed eol-style properties on new files. Please before adding a new file to svn use: "svn propset svn:eol-style native <filename's>"!!
darkvater
parents: 614
diff changeset
     5
5592
fd60d4ecc921 (svn r7608) [cbh] - Merge with trunk r7593:7607 because I need 7607 here
celestar
parents: 5355
diff changeset
     6
SUPPORTED MSVC COMPILERS
fd60d4ecc921 (svn r7608) [cbh] - Merge with trunk r7593:7607 because I need 7607 here
celestar
parents: 5355
diff changeset
     7
------------------------
fd60d4ecc921 (svn r7608) [cbh] - Merge with trunk r7593:7607 because I need 7607 here
celestar
parents: 5355
diff changeset
     8
OpenTTD includes projects for MSVC 2003.NET and MSVC 2005.NET. Both will
fd60d4ecc921 (svn r7608) [cbh] - Merge with trunk r7593:7607 because I need 7607 here
celestar
parents: 5355
diff changeset
     9
compile out of the box, providing you have the required libraries/headers;
fd60d4ecc921 (svn r7608) [cbh] - Merge with trunk r7593:7607 because I need 7607 here
celestar
parents: 5355
diff changeset
    10
which ones, see below. There is no support for VS6, you are therefore
fd60d4ecc921 (svn r7608) [cbh] - Merge with trunk r7593:7607 because I need 7607 here
celestar
parents: 5355
diff changeset
    11
strongly encouraged to either upgrade to MSVC 2005 Express (free) or use GCC.
fd60d4ecc921 (svn r7608) [cbh] - Merge with trunk r7593:7607 because I need 7607 here
celestar
parents: 5355
diff changeset
    12
MSVC 2002 probably works as well, but it has not been tested.
844
f1cae32ae8af (svn r1325) -Fixed eol-style properties on new files. Please before adding a new file to svn use: "svn propset svn:eol-style native <filename's>"!!
darkvater
parents: 614
diff changeset
    13
5592
fd60d4ecc921 (svn r7608) [cbh] - Merge with trunk r7593:7607 because I need 7607 here
celestar
parents: 5355
diff changeset
    14
1) REQUIRED FILES
fd60d4ecc921 (svn r7608) [cbh] - Merge with trunk r7593:7607 because I need 7607 here
celestar
parents: 5355
diff changeset
    15
-----------------
fd60d4ecc921 (svn r7608) [cbh] - Merge with trunk r7593:7607 because I need 7607 here
celestar
parents: 5355
diff changeset
    16
You might already have some of the files already installed, so check before
fd60d4ecc921 (svn r7608) [cbh] - Merge with trunk r7593:7607 because I need 7607 here
celestar
parents: 5355
diff changeset
    17
downloading; mostly because the DirectX SDK and Platform SDK are about
fd60d4ecc921 (svn r7608) [cbh] - Merge with trunk r7593:7607 because I need 7607 here
celestar
parents: 5355
diff changeset
    18
500MB each.
940
24e6412a2214 (svn r1428) Compiling with MSVC6 documentation update (from the wiki) [Bociusz]
miham
parents: 844
diff changeset
    19
Download the following files:
844
f1cae32ae8af (svn r1325) -Fixed eol-style properties on new files. Please before adding a new file to svn use: "svn propset svn:eol-style native <filename's>"!!
darkvater
parents: 614
diff changeset
    20
5592
fd60d4ecc921 (svn r7608) [cbh] - Merge with trunk r7593:7607 because I need 7607 here
celestar
parents: 5355
diff changeset
    21
	* openttd-useful.zip (http://sf.net/project/showfiles.php?group_id=103924&package_id=114307)
fd60d4ecc921 (svn r7608) [cbh] - Merge with trunk r7593:7607 because I need 7607 here
celestar
parents: 5355
diff changeset
    22
	* DirectX 8.1 SDK (http://neuron.tuke.sk/~mizanin/eng/Dx81sdk-include-lib.rar) (or alternatively the latest DirectX SDK from Microsoft)
fd60d4ecc921 (svn r7608) [cbh] - Merge with trunk r7593:7607 because I need 7607 here
celestar
parents: 5355
diff changeset
    23
	* MS Windows Platform SDK (http://www.microsoft.com/downloads/details.aspx?FamilyId=A55B6B43-E24F-4EA3-A93E-40C0EC4F68E5&displaylang=en)
fd60d4ecc921 (svn r7608) [cbh] - Merge with trunk r7593:7607 because I need 7607 here
celestar
parents: 5355
diff changeset
    24
	* afxres.h (http://www-d0.fnal.gov/d0dist/dist/packages/d0ve/devel/windows/AFXRES.H)
940
24e6412a2214 (svn r1428) Compiling with MSVC6 documentation update (from the wiki) [Bociusz]
miham
parents: 844
diff changeset
    25
2771
53c0f60949b0 (svn r3318) - Codechange: [FS#27] MSVC projectfile & documentation update (bociusz)
Darkvater
parents: 940
diff changeset
    26
...and of course the newest source from svn://svn.openttd.org/trunk
940
24e6412a2214 (svn r1428) Compiling with MSVC6 documentation update (from the wiki) [Bociusz]
miham
parents: 844
diff changeset
    27
5592
fd60d4ecc921 (svn r7608) [cbh] - Merge with trunk r7593:7607 because I need 7607 here
celestar
parents: 5355
diff changeset
    28
You need an SVN-client to download the source from subversion:
940
24e6412a2214 (svn r1428) Compiling with MSVC6 documentation update (from the wiki) [Bociusz]
miham
parents: 844
diff changeset
    29
5592
fd60d4ecc921 (svn r7608) [cbh] - Merge with trunk r7593:7607 because I need 7607 here
celestar
parents: 5355
diff changeset
    30
	* CLI Subversion (http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91)
fd60d4ecc921 (svn r7608) [cbh] - Merge with trunk r7593:7607 because I need 7607 here
celestar
parents: 5355
diff changeset
    31
	* GUI TortoiseSVN (http://tortoisesvn.tigris.org/download.html)
940
24e6412a2214 (svn r1428) Compiling with MSVC6 documentation update (from the wiki) [Bociusz]
miham
parents: 844
diff changeset
    32
5592
fd60d4ecc921 (svn r7608) [cbh] - Merge with trunk r7593:7607 because I need 7607 here
celestar
parents: 5355
diff changeset
    33
2) INCLUDES AND LIBRARIES
fd60d4ecc921 (svn r7608) [cbh] - Merge with trunk r7593:7607 because I need 7607 here
celestar
parents: 5355
diff changeset
    34
-------------------------
fd60d4ecc921 (svn r7608) [cbh] - Merge with trunk r7593:7607 because I need 7607 here
celestar
parents: 5355
diff changeset
    35
Put the newly downloaded files in the VC lib\ and include\ directories; where
fd60d4ecc921 (svn r7608) [cbh] - Merge with trunk r7593:7607 because I need 7607 here
celestar
parents: 5355
diff changeset
    36
"C:\Program Files\Microsoft Visual Studio 8\VC" is your location of Visual C.
fd60d4ecc921 (svn r7608) [cbh] - Merge with trunk r7593:7607 because I need 7607 here
celestar
parents: 5355
diff changeset
    37
If you are compiling for an x64 system, use the include\ and lib\ directories
fd60d4ecc921 (svn r7608) [cbh] - Merge with trunk r7593:7607 because I need 7607 here
celestar
parents: 5355
diff changeset
    38
from the win64/ folder.
940
24e6412a2214 (svn r1428) Compiling with MSVC6 documentation update (from the wiki) [Bociusz]
miham
parents: 844
diff changeset
    39
5592
fd60d4ecc921 (svn r7608) [cbh] - Merge with trunk r7593:7607 because I need 7607 here
celestar
parents: 5355
diff changeset
    40
	* openttd-useful.zip\include\*
fd60d4ecc921 (svn r7608) [cbh] - Merge with trunk r7593:7607 because I need 7607 here
celestar
parents: 5355
diff changeset
    41
	* afxresh.h
fd60d4ecc921 (svn r7608) [cbh] - Merge with trunk r7593:7607 because I need 7607 here
celestar
parents: 5355
diff changeset
    42
	to >	C:\Program Files\Microsoft Visual Studio 8\VC\Include
940
24e6412a2214 (svn r1428) Compiling with MSVC6 documentation update (from the wiki) [Bociusz]
miham
parents: 844
diff changeset
    43
5592
fd60d4ecc921 (svn r7608) [cbh] - Merge with trunk r7593:7607 because I need 7607 here
celestar
parents: 5355
diff changeset
    44
	* openttd-useful.zip\lib\*
fd60d4ecc921 (svn r7608) [cbh] - Merge with trunk r7593:7607 because I need 7607 here
celestar
parents: 5355
diff changeset
    45
	to >	C:\Program Files\Microsoft Visual Studio 8\VC\Lib
940
24e6412a2214 (svn r1428) Compiling with MSVC6 documentation update (from the wiki) [Bociusz]
miham
parents: 844
diff changeset
    46
5592
fd60d4ecc921 (svn r7608) [cbh] - Merge with trunk r7593:7607 because I need 7607 here
celestar
parents: 5355
diff changeset
    47
Custom directories might be recommended, check 2.2)
940
24e6412a2214 (svn r1428) Compiling with MSVC6 documentation update (from the wiki) [Bociusz]
miham
parents: 844
diff changeset
    48
24e6412a2214 (svn r1428) Compiling with MSVC6 documentation update (from the wiki) [Bociusz]
miham
parents: 844
diff changeset
    49
5592
fd60d4ecc921 (svn r7608) [cbh] - Merge with trunk r7593:7607 because I need 7607 here
celestar
parents: 5355
diff changeset
    50
2.1) INCLUDES AND LIBRARIES - DIRECTX/PLATFORM SDK
fd60d4ecc921 (svn r7608) [cbh] - Merge with trunk r7593:7607 because I need 7607 here
celestar
parents: 5355
diff changeset
    51
--------------------------------------------------
fd60d4ecc921 (svn r7608) [cbh] - Merge with trunk r7593:7607 because I need 7607 here
celestar
parents: 5355
diff changeset
    52
Basically the same procedure as with the useful zip file, providing
fd60d4ecc921 (svn r7608) [cbh] - Merge with trunk r7593:7607 because I need 7607 here
celestar
parents: 5355
diff changeset
    53
you are not using the Microsoft installer. Put the include files in the
fd60d4ecc921 (svn r7608) [cbh] - Merge with trunk r7593:7607 because I need 7607 here
celestar
parents: 5355
diff changeset
    54
include\ directory and the library files to the Lib\ directory.
940
24e6412a2214 (svn r1428) Compiling with MSVC6 documentation update (from the wiki) [Bociusz]
miham
parents: 844
diff changeset
    55
5592
fd60d4ecc921 (svn r7608) [cbh] - Merge with trunk r7593:7607 because I need 7607 here
celestar
parents: 5355
diff changeset
    56
It is recommended to use custom directories so you don't overwrite any
fd60d4ecc921 (svn r7608) [cbh] - Merge with trunk r7593:7607 because I need 7607 here
celestar
parents: 5355
diff changeset
    57
default header or library files.
940
24e6412a2214 (svn r1428) Compiling with MSVC6 documentation update (from the wiki) [Bociusz]
miham
parents: 844
diff changeset
    58
5592
fd60d4ecc921 (svn r7608) [cbh] - Merge with trunk r7593:7607 because I need 7607 here
celestar
parents: 5355
diff changeset
    59
2.2) CUSTOM DIRECTORIES
fd60d4ecc921 (svn r7608) [cbh] - Merge with trunk r7593:7607 because I need 7607 here
celestar
parents: 5355
diff changeset
    60
-----------------------
fd60d4ecc921 (svn r7608) [cbh] - Merge with trunk r7593:7607 because I need 7607 here
celestar
parents: 5355
diff changeset
    61
If you have put the above include and/or library files into custom folders,
fd60d4ecc921 (svn r7608) [cbh] - Merge with trunk r7593:7607 because I need 7607 here
celestar
parents: 5355
diff changeset
    62
MSVC will not find them by default. You need to add these paths to VC through:
940
24e6412a2214 (svn r1428) Compiling with MSVC6 documentation update (from the wiki) [Bociusz]
miham
parents: 844
diff changeset
    63
5592
fd60d4ecc921 (svn r7608) [cbh] - Merge with trunk r7593:7607 because I need 7607 here
celestar
parents: 5355
diff changeset
    64
Tools > Options > Projects and Solutions > VC++ Directories > show directories for
940
24e6412a2214 (svn r1428) Compiling with MSVC6 documentation update (from the wiki) [Bociusz]
miham
parents: 844
diff changeset
    65
5592
fd60d4ecc921 (svn r7608) [cbh] - Merge with trunk r7593:7607 because I need 7607 here
celestar
parents: 5355
diff changeset
    66
	* Include files: Add the DirectX/Platform SDK include dir you've created
fd60d4ecc921 (svn r7608) [cbh] - Merge with trunk r7593:7607 because I need 7607 here
celestar
parents: 5355
diff changeset
    67
	* Library files: Add the path to the SDK custom lib dir
fd60d4ecc921 (svn r7608) [cbh] - Merge with trunk r7593:7607 because I need 7607 here
celestar
parents: 5355
diff changeset
    68
fd60d4ecc921 (svn r7608) [cbh] - Merge with trunk r7593:7607 because I need 7607 here
celestar
parents: 5355
diff changeset
    69
NOTE: make sure that the directory for the DirectX SDK is the first one in the
fd60d4ecc921 (svn r7608) [cbh] - Merge with trunk r7593:7607 because I need 7607 here
celestar
parents: 5355
diff changeset
    70
list, above all others, otherwise compilation will most likely fail!!
fd60d4ecc921 (svn r7608) [cbh] - Merge with trunk r7593:7607 because I need 7607 here
celestar
parents: 5355
diff changeset
    71
fd60d4ecc921 (svn r7608) [cbh] - Merge with trunk r7593:7607 because I need 7607 here
celestar
parents: 5355
diff changeset
    72
3) TTD GRAPHICS FILES
fd60d4ecc921 (svn r7608) [cbh] - Merge with trunk r7593:7607 because I need 7607 here
celestar
parents: 5355
diff changeset
    73
---------------------
940
24e6412a2214 (svn r1428) Compiling with MSVC6 documentation update (from the wiki) [Bociusz]
miham
parents: 844
diff changeset
    74
Copy the following files from Transport Tycoon Deluxe to the data folder
24e6412a2214 (svn r1428) Compiling with MSVC6 documentation update (from the wiki) [Bociusz]
miham
parents: 844
diff changeset
    75
5592
fd60d4ecc921 (svn r7608) [cbh] - Merge with trunk r7593:7607 because I need 7607 here
celestar
parents: 5355
diff changeset
    76
	* sample.cat
fd60d4ecc921 (svn r7608) [cbh] - Merge with trunk r7593:7607 because I need 7607 here
celestar
parents: 5355
diff changeset
    77
	* trg1r.grf
fd60d4ecc921 (svn r7608) [cbh] - Merge with trunk r7593:7607 because I need 7607 here
celestar
parents: 5355
diff changeset
    78
	* trgcr.grf
fd60d4ecc921 (svn r7608) [cbh] - Merge with trunk r7593:7607 because I need 7607 here
celestar
parents: 5355
diff changeset
    79
	* trghr.grf
fd60d4ecc921 (svn r7608) [cbh] - Merge with trunk r7593:7607 because I need 7607 here
celestar
parents: 5355
diff changeset
    80
	* trgir.grf
fd60d4ecc921 (svn r7608) [cbh] - Merge with trunk r7593:7607 because I need 7607 here
celestar
parents: 5355
diff changeset
    81
	* trgtr.grf
940
24e6412a2214 (svn r1428) Compiling with MSVC6 documentation update (from the wiki) [Bociusz]
miham
parents: 844
diff changeset
    82
24e6412a2214 (svn r1428) Compiling with MSVC6 documentation update (from the wiki) [Bociusz]
miham
parents: 844
diff changeset
    83
5592
fd60d4ecc921 (svn r7608) [cbh] - Merge with trunk r7593:7607 because I need 7607 here
celestar
parents: 5355
diff changeset
    84
4) COMPILING
fd60d4ecc921 (svn r7608) [cbh] - Merge with trunk r7593:7607 because I need 7607 here
celestar
parents: 5355
diff changeset
    85
------------
fd60d4ecc921 (svn r7608) [cbh] - Merge with trunk r7593:7607 because I need 7607 here
celestar
parents: 5355
diff changeset
    86
Open trunk/openttd[_vs80].sln
fd60d4ecc921 (svn r7608) [cbh] - Merge with trunk r7593:7607 because I need 7607 here
celestar
parents: 5355
diff changeset
    87
Set the build mode to 'Release' in
fd60d4ecc921 (svn r7608) [cbh] - Merge with trunk r7593:7607 because I need 7607 here
celestar
parents: 5355
diff changeset
    88
Build > Configuration manager > Active solution configuration > select "Release"
940
24e6412a2214 (svn r1428) Compiling with MSVC6 documentation update (from the wiki) [Bociusz]
miham
parents: 844
diff changeset
    89
Compile...
24e6412a2214 (svn r1428) Compiling with MSVC6 documentation update (from the wiki) [Bociusz]
miham
parents: 844
diff changeset
    90
5592
fd60d4ecc921 (svn r7608) [cbh] - Merge with trunk r7593:7607 because I need 7607 here
celestar
parents: 5355
diff changeset
    91
If everything works well the binary should be in trunk/Release/openttd.exe
2771
53c0f60949b0 (svn r3318) - Codechange: [FS#27] MSVC projectfile & documentation update (bociusz)
Darkvater
parents: 940
diff changeset
    92
5592
fd60d4ecc921 (svn r7608) [cbh] - Merge with trunk r7593:7607 because I need 7607 here
celestar
parents: 5355
diff changeset
    93
5) EDITING, CHANGING SOURCE CODE
fd60d4ecc921 (svn r7608) [cbh] - Merge with trunk r7593:7607 because I need 7607 here
celestar
parents: 5355
diff changeset
    94
--------------------------------
fd60d4ecc921 (svn r7608) [cbh] - Merge with trunk r7593:7607 because I need 7607 here
celestar
parents: 5355
diff changeset
    95
Set the build mode (back to) 'Debug'
fd60d4ecc921 (svn r7608) [cbh] - Merge with trunk r7593:7607 because I need 7607 here
celestar
parents: 5355
diff changeset
    96
Change the startup project to openttd by right-clicking the 'openttd' project
fd60d4ecc921 (svn r7608) [cbh] - Merge with trunk r7593:7607 because I need 7607 here
celestar
parents: 5355
diff changeset
    97
in the Solution Explorer and selecting 'Set as Startup Project'. The 'openttd'
fd60d4ecc921 (svn r7608) [cbh] - Merge with trunk r7593:7607 because I need 7607 here
celestar
parents: 5355
diff changeset
    98
project should now show up bold instead of 'strgen'.
844
f1cae32ae8af (svn r1325) -Fixed eol-style properties on new files. Please before adding a new file to svn use: "svn propset svn:eol-style native <filename's>"!!
darkvater
parents: 614
diff changeset
    99
5592
fd60d4ecc921 (svn r7608) [cbh] - Merge with trunk r7593:7607 because I need 7607 here
celestar
parents: 5355
diff changeset
   100
6) PROBLEMS?
fd60d4ecc921 (svn r7608) [cbh] - Merge with trunk r7593:7607 because I need 7607 here
celestar
parents: 5355
diff changeset
   101
------------
fd60d4ecc921 (svn r7608) [cbh] - Merge with trunk r7593:7607 because I need 7607 here
celestar
parents: 5355
diff changeset
   102
If compilation fails, double-check that you are using the latest SVN (!)
fd60d4ecc921 (svn r7608) [cbh] - Merge with trunk r7593:7607 because I need 7607 here
celestar
parents: 5355
diff changeset
   103
source. If it still doesn't work, check in on IRC (irc://irc.oftc.net/openttd),
fd60d4ecc921 (svn r7608) [cbh] - Merge with trunk r7593:7607 because I need 7607 here
celestar
parents: 5355
diff changeset
   104
to ask about reasons; or just wait. The problem will most likely solve itself
fd60d4ecc921 (svn r7608) [cbh] - Merge with trunk r7593:7607 because I need 7607 here
celestar
parents: 5355
diff changeset
   105
within a few days as the problem is noticed and fixed.
844
f1cae32ae8af (svn r1325) -Fixed eol-style properties on new files. Please before adding a new file to svn use: "svn propset svn:eol-style native <filename's>"!!
darkvater
parents: 614
diff changeset
   106
5592
fd60d4ecc921 (svn r7608) [cbh] - Merge with trunk r7593:7607 because I need 7607 here
celestar
parents: 5355
diff changeset
   107
An up-to-date version of this README can be found on the wiki:
fd60d4ecc921 (svn r7608) [cbh] - Merge with trunk r7593:7607 because I need 7607 here
celestar
parents: 5355
diff changeset
   108
http://wiki.openttd.org/index.php/MicrosoftVisualCExpress