>Based on Reinhold's thought, the idea would be to use something like

#if defined(_MSVC_VER < VisualStudio2015)
typedef __int64 fluid_long_long_t; // even on 32bit windows
#else
typedef long long fluid_long_long_t;
#endif

>Should it really be that simple or am I missing smth.?

 

You are not missing something, and this should be really that simple.

Verified using VS2010 on Windows XP,  __int64  is really an integer value on 64 
bit, (even on 32bits CPU).

__int64   v2_pos_max = 0x7FFFFFFFFFFFFFFF;  // +-9223372036854775807
__int64   v2_neg_min = 0x8000000000000000;     //  -9223372036854775808



jjc

 

 

 

 

> Message du 17/03/20 09:45
> De : "Tom M. via fluid-dev" 
> A : "FluidSynth mailing list" 
> Copie à : "Tom M." 
> Objet : Re: [fluid-dev] About Supporting 2GiB+ Soundfonts on Windows
> 
> > If you decided to require C99, I would think you would want to use int64_t 
> > and its relatives for portability. I actually had "long long" in mind, 
> > because int64_t would require fluidsynth's header to include stdint.h, and 
> > whenever possible I would like to avoid polluting our header with any C 
> > system header (for the sake of portability to C++). Also note that int64_t 
> > is an optional type and may only be provided if the implementation supports 
> > it. (The latter doesn't really make sense in practice, because long long is 
> > an intrinsic type guaranteed to be at least 64 bits wide. And because long 
> > long must be available, int64_t will also be available.) Based on 
> > Reinhold's thought, the idea would be to use something like #if 
> > defined(_MSVC_VER < VisualStudio2015) typedef __int64 fluid_long_long_t; // 
> > even on 32bit windows #else typedef long long fluid_long_long_t; #endif in 
> > our public header. Which basically means: Fluidsynth's source code stays 
> > C89. The public header will be compatible with C99 (or C++11) UNLESS it's 
> > being compiled with an old VS in which case we provide a fallback. This 
> > should provide enough portability while still retaining ABI compatibility 
> > between and MSVC and MinGW compiled fluidsynth. Should it really be that 
> > simple or am I missing smth.? Tom 
> > _______________________________________________ fluid-dev mailing list 
> > fluid-dev@nongnu.org https://lists.nongnu.org/mailman/listinfo/fluid-dev
_______________________________________________
fluid-dev mailing list
fluid-dev@nongnu.org
https://lists.nongnu.org/mailman/listinfo/fluid-dev

Reply via email to