In poking around a little further, I found that I also had a full version of Visual Studio 2005 as well.
It seems to work on my Windows 8,1 machine even though the Compiler is 32-bit.
Ever nicer is the fact that the code it generates runs just fine on my old Windows 98 SE development machine.
There are still issues though:
The Tachometers seem to work well enough with AIR files derived from the stock P-51D but not with some other AIR files.
The Manifold Pressure variable in the FS98 SDK only reads up to about 65 inches Hg.
Some WW2 Engines ran at much higher boost settings.
I have also managed to build a N2 Tachometer for Jet Engines with the same process.
I don't have a copy of the FS98 gauges.h file anymore (not sure what happened to my old FS98 SDK pack), so I'm kinda working from memory and the FS2k gauges/h file that I used to use for CFS2.
If you've still got my email address, can you send me a copy of the FS98 SDK or at least the gauges.h file?
-Which tach/rpm variables are you using? It sounds like you're using the CFS1 and newer "RECIP_ENGINE1_ENGINE_RPM". These variables work for CFS1 and newer airfiles but not FS98 airfiles.
I honestly don't remember the variable for the FS98 rpm. I think that the RPM_SCALER variable is the one that reads the actual prop rpm.
" ENGINE1_RPM_SCALER, // *16384 gives actual prop rpm in dx (= 65535 for jets)" is what I have for notes in my CFS2 gauges.h file.
-The FS98 manifold pressure is indeed limited to 64inHg.
" UINT16 manifold_pressure; // manifold pressure (0-65535=>0-64)"
It's an unsigned 16-bit integer, 65535 being the upper limit which is hard-coded into the sim DLLs as 64inHg. Unfortunately, that's what we've got to work with.
If I'm reading my notes correctly, if you use the CFS1-newer "RECIP_ENGINE1_MANIFOLD_PRESSURE", I have a comment from Jerry Beckwith that 70.72636 = 1inHg. I think those variables are also UINT16 with 65535 as a maximum value but I'm not positive.
-I have never monkeyed with making gauges for the jet engine airfiles. Not sure if any quirks on them.
Double-needle gauges shouldn't be a problem with an FS98 gauge. I'm sure I've seen them before but I've never built one. I would think that you would just need to build your source .c file with the elememts drawn in the correct order. NEEDLE1 MAKE_NEEDLE macro, then NEEDLE2's MAKE_NEEDLE macro, then your BACKGROUND's MAKE_STATIC macro.
Also, don't share resources in your .rc file between the two needles. You can call the same bitmap but give each macro's resource a different entry.
Hope that helps.