Nice find, I need to do some tests myself. 
I've converted it to C++ now, I've attached it in a RAR. You'll need to change the Memset call and supply the sample rate as these are stored in other files in my Synth, but you should be able to get it running fairly easily.
Note that the numSamples value should be a power of 2. The value 2 ^ 18 (262,144) seems to work quite nicely and gives you a wavetable that takes ~512kb of mem. I discovered yesterday that the amplitude/volume of the output depends on the size of numSamples. The lower the value of numSamples, the great the amplitude of the output. The code doesn't take this into account at the moment, so if you going to be generating variable length PadSynth wavetables, remember to take this into account. I should have a magic number of amplitude scaling soon, which I'll share. Obviously the memory usage gets quite high with bigger wavetable sizes, but the bigger the wavetable, the smoother the sound. You end up with quite noticeable tremolo when using low numSamples values.
EDIT: I'm currently using a wavetable per octave but there's a noticeable change in the output between the wavetables (due to missing harmonics I think). You can really hear this when it switches wavetables while playing a set of ascending or descending notes. Still working this out, going try mixing between the wavetables to see if that helps.
EDIT: Oops, seems my problems with varying volume/amplitude were due to not normalizing the wavetable samples after generation. Updated the attached code. Also added defines for memset, samplerate and PI, so just change these to point to your own stuff if you use it. I'll get round to optimizing this at some point, it's fairly small and fast already though.