Ideally dbgeng would never AV. But sometimes it does, and when it does,
it can be difficult to figure out what is going on. Catching them gives
us a chance, and prevents our frames from being silently ripped through.
Expose ReadVirtualValue as ReadMemAs<T>, implement the other ReadMemAs functions using it
Add read function for simple & efficient reading of single discrete values
This allows us not to care what particular version(s) of the SDK is
installed on a particular machine, instead reading the "current" version
from the registry.
It seems like a bit of a hack... let's see if/how long it will work.
Apparently the Microsoft.VCRedistVersion.default.txt file does not exist
everywhere... so I'll try using a default version if it's missing.
Oh, and then the VC redist paths themselves change... so I'll try to
account for that, too.
(this should now build on both Community 15.4.0 and Enterprise 15.3.5)