Here's the complete source file.
Well, there is only 1 file in there: the single *.cpp . The problem is probably not in there, given that you have linker errors, not compiler errors. It would be good to also have your solution and project files, so we can point out what to change in them to let VS build it properly.
I could plug that CPP into my VS 2015 templates, and I bet it'll run just fine, but this would not help you find the problem you have with your compiler.
---------- Post added at 19:33 ---------- Previous post was at 13:49 ----------
The following is a link to an environment archive for VS 2017 Enterprise (that's what I have here) for the Glider development:
https://snoopie.at/face/beta/GliderVSEnvironment.zip
You have to extract it to your Orbiter root folder. It creates VS 2017 compatible property sheets in the /Orbitersdk/resources/ folder (*.props). It also creates solution and project files in the /Orbitersdk/samples/Glider/ folder.
In order to make it work, you have to edit the /Orbitersdk/resources/orbiterroot.props file with a text editor, and change the "Your:\Orbiter\Root\Path" text to your Orbiter root path. With this, all examples in the /Orbitersdk/samples/ should work when converted to 2017.
You also have to copy your CPP into the /Orbitersdk/samples/Glider/ folder, because I did not include it in the archive.
With my VS 2017 Enterprise installation, the solution can compile both Debug and Release versions of your glider CPP with working XRSound. I've tried both the 1.1 and the new beta 2.0 XRSound.
However, the simple PlayWav call in your code does not produce any sound, because the default "slots" are played automatically and are only available for enabling/disabling/changing, not for playing or stopping manually. If I do a LoadWav on e.g. ID 0 and with "XRSound\\Default\\Autopilot On.wav" directly after the CreateInstance and call it with ID 0 in PlayWav, it works though.