What you proposed, is conversion from Long64_t to const char*.
I need another direction: from const char* to Long64_t.
Actually, I found usage of “%lld” formating string in several places in ROOT.
For example, in “longif.h”, “longif3.h” and “longlong.h” in CINT as sscanf() arguments, which can not work for VC++.
I use such definitions in TBufferSQL2 & TBufferXML for conversions
of basic types from/to const char* and the same definitions can be used
as arguments in printf()/scanf() functions calls.
I also was suprised, but my small test programs show that
printf("%lld") works in VC++ 7.1, but scanf("%lld") does not.
I look MS website. In no places I found %lld description.
Anyway, “%I64d” is better to use in all situation with Windows.