Make entire library code compile on MSVC & gcc.

Why make this change? Why not leave it the way it is?