Compiling under VS2005: Difference between revisions
(→Setup) |
Csteinhoff (talk | contribs) (→Setup) |
||
Line 28: | Line 28: | ||
Go to Tools - Options: Projects and Solutions - VC++ Directories | Go to Tools - Options: Projects and Solutions - VC++ Directories | ||
{{note|Vista users, having downloaded the Microsoft Windows SDK, will not have a path containing Microsoft Platform SDK. The correct path (if the Windows SDK is installed with the download above and it's default install paths), to substitute in to the appropriate paths below, appears to be "...\Microsoft SDKs\Windows\v''x.x''\..." Installing the Windows SDK does not make a difference in paths to the DirectX SDK, except the version may not have been released in the same month and hence may not have the same month in parenthesis in the folder path.}} | {{note|Vista users, having downloaded the Microsoft Windows SDK, will not have a path containing Microsoft Platform SDK. The correct path (if the Windows SDK is installed with the download above and it's default install paths), to substitute in to the appropriate paths below, appears to be "...\Microsoft SDKs\Windows\v''x.x''\..." Installing the Windows SDK does not make a difference in paths to the DirectX SDK, except the version may not have been released in the same month and hence may not have the same month in parenthesis in the folder path. }} | ||
{{note|Vista 64 users,By default the Platform SDK does not install the 32 bit libs. Make sure to select them when you install}} | |||
* In the upper right drop down box, select "Executable files" and add "...\Microsoft Platform SDK\Bin" (replace with the correct path) | * In the upper right drop down box, select "Executable files" and add "...\Microsoft Platform SDK\Bin" (replace with the correct path) |
Revision as of 16:19, 23 February 2008
Introduction
The following is a general guide to getting HL2 compiling under VS 2005. Its important to note that the SDK code for HL2 supports VS2005, but only in the the _2005.sln
files. Compiling a _2003.sln
under 2005 and visa versa will only generate problems and errors. Older versions of the source code did not support 2005, to get them working with 2005 go here.
What's working
Single-player
- Release - client - VS Studio: working & playable
- Release - hl - VS Studio: working & playable
- Release - client - V C++ Express: working & playable (after requirements are fullfilled)
- Release - hl - V C++ Express: working & playable (after requirements are fullfilled)
Multiplayer
- Release - client - VS Studio: working & playable
- Release - hl - VS Studio: working & playable
- Release - client - V C++ Express: working & playable (after requirements are fullfilled)
- Release - hl - V C++ Express: working & playable (after requirements are fulfilled)
Requirements
Necessary steps are needed to enable compiling with the Visual Studio C++ 2005 Express Edition:
Files
- MS DirectX SDK
- Microsoft Platform SDK For Windows 2000/XP/Server 2003
- Microsoft Windows SDK For Windows Vista
Setup
Go to Tools - Options: Projects and Solutions - VC++ Directories


- In the upper right drop down box, select "Executable files" and add "...\Microsoft Platform SDK\Bin" (replace with the correct path)
- Then select "Include files" and add "...\Microsoft Platform SDK\Include" and "...\Microsoft DirectX SDK (November 2007)\Include"
- Then select "Library files" and add "...\Microsoft Platform SDK\Lib" and "...\Microsoft DirectX SDK (November 2007)\Lib\x86"

- Finally, in the Solution Explorer right click 'client_hl2', and select Properties, then:
- In the client_hl2 properties window, navigate to Linker -> Input
- Select the 'Additional Dependencies' box. Then click the '...' on the right hand side of the box
- If there is already an entry here, take a new line after it (a space will suffice if you cannot create a new line), and type 'user32.lib' and 'kernel32.lib' with a space between them, and without the quotes.
- Repeat these steps for 'server_hl2'
Potential problems
Correcting Custom Build Step
The Custom Build step which copies the DLLs to your mod's directory is incorrect in the 2005 solution. When you attempt to run your game, it will crash upon trying to access gpGlobals
, with an access violation at memory location 0x0000038.

Right-click on the client_sdk
project, and go to Configuration Properties -> Custom Build Step -> General. Set the "Command Line" to:
if exist "c:\program files\steam\steamapps\SourceMods\MyMod\bin\client.dll" attrib -r "c:\program files\steam\steamapps\SourceMods\MyMod\bin\client.dll" if exist "$(TargetDir)"client.dll copy "$(TargetDir)"client.dll "c:\program files\steam\steamapps\SourceMods\MyMod\bin\client.dll" if exist "c:\program files\steam\steamapps\SourceMods\MyMod\bin\client.pdb" attrib -r "c:\program files\steam\steamapps\SourceMods\MyMod\bin\client.pdb" if exist "$(TargetDir)"client.pdb copy "$(TargetDir)"client.pdb "c:\program files\steam\steamapps\SourceMods\MyMod\bin"
Set Outputs to:
"c:\program files\steam\steamapps\SourceMods\MyMod\bin\client.dll";"c:\program files\steam\steamapps\SourceMods\MyMod\bin\client.pdb"
(In both cases, replace the "MyMod" entry with the actual name of your mod directory.)
Click "Apply" (you will lose your changes if you skip this step). At the top-left, bring down the "Configuration" combo box, set it to "Release SDK", and set Command Line and Outputs to the same values. The server_sdk
's custom build steps should be correct.