Difference between revisions of "Microsoft Visual Studio"
Line 22: | Line 22: | ||
Since VS 2010 and DXSDK June 2010 are becoming hard to locate, those wanting to follow the old tutorials will likely want to use VS 2015. This can be done, but the following problems must be fixed in order to do so. | Since VS 2010 and DXSDK June 2010 are becoming hard to locate, those wanting to follow the old tutorials will likely want to use VS 2015. This can be done, but the following problems must be fixed in order to do so. | ||
=== dxerr.lib === | === dxerr.lib === | ||
− | The old beginner and intermediate series required the downloading of the DirectX SDK because VS 2010 did not include it. Newer versions of VS include the Windows Platform SDK which has most of the files from the DXSDK. The problem is, some files were cut from the team, and one of those files -- dxerr.lib -- is included in the old Framework project dependencies. To fix this problem, go into the project properties and remove dxerr.lib from the list of additional libraries. | + | The old beginner and intermediate series required the downloading of the DirectX SDK because VS 2010 did not include it. Newer versions of VS include the Windows Platform SDK which has most of the files from the DXSDK. The problem is, some files were cut from the team, and one of those files -- <code>dxerr.lib</code> -- is included in the old Framework project dependencies. To fix this problem, go into the project properties and remove dxerr.lib from the list of additional libraries. |
=== const in Container Template Parameters === | === const in Container Template Parameters === | ||
− | The code from the advanced series and the H.U.G.S. series will fail in VS 2015 because of the use of const in container template parameters (e.g. std::vector<const Vec2>). This code was apparently defined as ill-formed by the standard, but older version of the Microsoft compiler permitted it anyways. Microsoft | + | The code from the advanced series and the H.U.G.S. series will fail in VS 2015 because of the use of <code>const</code> in container template parameters (e.g. <code>std::vector<const Vec2></code>). This code was apparently defined as ill-formed by the standard, but older version of the Microsoft compiler permitted it anyways. Microsoft made the compiler stricter in 2015 and that broke this code. When following along, you should make appropriate modifications to remove <code>const</code> from inside of any std container template arguments. |
Revision as of 14:24, 22 July 2016
Microsoft Visual Studio is an IDE (integrated development environment) that supports C++, C#, and a bunch of other dumb languages that nobody cares about. It has a sweet-ass debugger and generally gives you the least painful experience for developing Windows applications, so that's what we use in the tutorials. The current version is Visual Studio 2015.
Contents
Versions Used in the Tutorials
Visual C++ 2010 Express
- Old Version of Beginner Series
- Old Version of Intermediate Series
Unlike later versions versions, Express 2010 shipped without the Windows Platform SDK, so you needed to download the DirectX SDK separately to build Direct3D applications (and thus, to build the Framework and follow the tutorials). It is no longer available for download from Microsoft, and may be difficult to obtain online.
Visual Studio 2013 Express for Windows Desktop
- Old Version of Advanced Series
- H.U.G.S. Series
- SSE Optimization Series
This release has (incomplete) support for C++11 features.
Visual Studio 2015 Community
Visual Studio 2015 Community has (almost) complete support for C++11.
Express and Community Editions
Microsoft provides a free version of their Visual Studio IDE, traditionally in the form of the 'Express' edition. It features the same compiler as the paid versions, but lacks some tools such as a profiler for profile-guided optimization or the ability to use plug-ins. Starting in 2013, Microsoft has provided a second free version called the 'Community' edition, which has more features than Express. The only real downside to Community is that, while the Express edition has no limitation in terms of usage, the Community license only extends to individuals or small groups of less than 5 people.
Following the Old Series with VS 2015
Since VS 2010 and DXSDK June 2010 are becoming hard to locate, those wanting to follow the old tutorials will likely want to use VS 2015. This can be done, but the following problems must be fixed in order to do so.
dxerr.lib
The old beginner and intermediate series required the downloading of the DirectX SDK because VS 2010 did not include it. Newer versions of VS include the Windows Platform SDK which has most of the files from the DXSDK. The problem is, some files were cut from the team, and one of those files -- dxerr.lib
-- is included in the old Framework project dependencies. To fix this problem, go into the project properties and remove dxerr.lib from the list of additional libraries.
const in Container Template Parameters
The code from the advanced series and the H.U.G.S. series will fail in VS 2015 because of the use of const
in container template parameters (e.g. std::vector<const Vec2>
). This code was apparently defined as ill-formed by the standard, but older version of the Microsoft compiler permitted it anyways. Microsoft made the compiler stricter in 2015 and that broke this code. When following along, you should make appropriate modifications to remove const
from inside of any std container template arguments.