It is not so much difficult, but there are several points need to care.
This document targets VGMTrans_src_and_bin_9_29_09. Situation might be different when you try any other versions.
- Visual Studio 2008
- Express Edition is okay, but it will require some additional installations. If you can use higher edition (Professional Edition, for instance), you should definitely use it.
- Visual Studio 2010 can work fine, but you will need to rebuild static library of TinyXML*1, or you will encounter LNK2019 error (details). Precompiled VS2010 Dependencies
- Windows SDK (should be included in Visual Studio, I used v7.1)
- DirectX SDK (August 2007)
- The above is the final version that contains DirectMusic.
- WTL (7.5 and 8.0 worked)
- TinyXML (2.5.3 is included in VGMTrans source code package, but the latest version 2.6.2 works just fine too)
At least you need to download and install DirectX SDK and WTL. Both of those libraries can be installed by running setup executable, and adding include/library paths to Visual Studio. Visual Studio 2010 does not have "VC++ Directories" category, so that you need to configure it in VGMTrans.vcxproj(.user), or edit Microsoft.Cpp.Win32.user.props to have those paths, just like the following.
<?xml version="1.0" encoding="utf-8"?> <Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <PropertyGroup> <ExecutablePath>$(ExecutablePath)</ExecutablePath> <IncludePath>$(IncludePath);C:\WTL80\include;C:\Program Files\Microsoft DirectX SDK (August 2007)\Include</IncludePath> <ReferencePath>$(ReferencePath)</ReferencePath> <LibraryPath>$(LibraryPath);C:\Program Files\Microsoft DirectX SDK (August 2007)\Lib\x86</LibraryPath> <SourcePath>$(SourcePath)</SourcePath> <ExcludePath>$(ExcludePath)</ExcludePath> </PropertyGroup> </Project>
Additional Requirements for Visual Studio 2008 Express Edition
Unfortunately, Express Edition requires more installation because it lacks ATL support. Though I have never tried to use Express Edition, some anonymous developers tried the following things and solved the problem. Nice find.
- Microsoft Windows Server 2003 Driver Development Kit (for ATL headers, installation steps are the same as DirectX SDK)
- Edit VGMTrans Project Properties (from Visual Studio)
*1:TinyXML 2.5.3 is included in VGMTrans source code package, but the latest version 2.6.2 works just fine too. I recommend a newer version.