Feel the power of the light side!
I compiled DarkGDK for Visual Studio 2017. Now you can download it from attachment and use it with VS2017. This is good old "Unofficial r114" version, but compiled for VS2017. Enjoy!
I tested and use it with two my own games (2D and 3D+shaders), no problems. (But I not tested DarkGDK's own multiplayer part and odePhysics part, because I do not use them in my games)
How to use with VS2017
(Step 0, optional) If you want, you can firstly install old DarkGDK for VS2008, read here how to do this: Step-by-step guide
Step 1. Install free Visual Studio 2017 Community.
Step 2. Open "Visual Studio installer", press button "Change" and download from it all C++ libraries, and Windows 10 SDK (picture_1 in attachment)
Step 3. Install DirectX_SDK_august_2007.
Step 4. Download from attachment file "include_and_libs.zip". Unzip it into folder "C:\Program Files (x86)\The Game Creators\Dark GDK".
Step 5. Open your old DarkGDK's game in VS2017. VS2017 converts solution into new form.
Step 6. In game's solution: open "project's properties", set "all configurations" (debug+release). You MUST add "legacy_stdio_definitions.lib" to properties => linker => enter (or maybe "input". Excuse me, I have only russian version of VS2017.) (picture_2 in attachment)
In my games I also add "libcmtd;msvcrt;msvcprt;atls;libcp;darksdk.lib;" into properties => linker => ignored libraries.
Step 7. in "properties => folders VC++ => included folders" you can set paths as in my example on the picture (picture_3 in attachment)
Step 8. in "properties => folders VC++ => libraries folders" you can set paths as in my example on the picture. (picture_4 in attachment) Yes, for many years I set path only to release-version of DarkGDK's libs for both release and debug mods in my Visual Studio.
Step 9. In Linker => additional => "image has safe exception handlers" set "/SAFESEH:NO".
Step 10. In your main.cpp write "#define INITGUID" then "#include <dxdiag.h>" – before "#include "DarkGDK.h"" or "#include "DarkGDKWindow.h"". Without this you will have error "Linker Error LNK2019 link to unresolved external symbol _DXFILEOBJ_XSkinMeshHeader in "bool __cdecl XFILE_GetMeshData(struct IDirectXFileData *,struct sFrame *)" in convx.lib(ConvX.obj)". Second way: if you use "Cloggy's D3D for DarkGDK" in your project, you will not see this error too.
When I compile now my games in VS2017, I have 0 Errors and 0 warnings in both debug and release mods.
Download my two test game projects (VS2017_test_games.zip in attachment), look into project's properties, and set your game's properties as in this my examples.
You can compile DarkGDK yourself
Download from attachment source code, find "...\DarkGDK\Code\Compiler - Visual Studio 9\Dark SDK.sln", open it in VS2017, compile in Debug, then Release.
Microscopic changes from original r114 for VS2008:
1) commented little piece of unwanted code in CParticleManagerC.cpp (code for DXUtil_Timer). Without this I have error "LNK2005 "float __stdcall DXUtil_Timer(enum TIMER_COMMAND)" (?DXUtil_Timer@@YGMW4TIMER_COMMAND@@@Z) already defined in sound.lib(dxutil.obj)"
2) commented first line in DarkSDKOdePhysics.h, dropped ode.lib into folders "Lib_VS2017\VS" and "Lib_VS2017\VS9Debug". Without this ugly lifehack I have error.