a friend of mine have to categorize some image cds he got (hundreds) so i’ve done a little database browser/creator for his data.
after some trying i’ve found that doing (shortly):
File file ("D:\\something.xxx");
String time = file.getLastAccessTime().formatted ("some format");
where D: being a CD or DVD drive, i reach an assert:
File: loctim64.c
Line: 78
Expression: (*ptime <= _MAX__TIME64_T)
<callstack>
tridir.exe!_crt_debugger_hook(int _Reserved=18742100) Line 62 C
tridir.exe!_invalid_parameter(const wchar_t * pszExpression=0x0076a8c0, const wchar_t * pszFunction=0x0076a92c, const wchar_t * pszFile=0x0076a950, unsigned int nLine=78, unsigned int pReserved=0) Line 86 + 0x7 bytes C++
tridir.exe!_localtime64_s(tm * ptm=0x011df914, const __int64 * ptime=0x011df7ec) Line 78 + 0x7f bytes C
tridir.exe!localtime_s(tm * _Tm=0x011df914, const __int64 * _Time=0x011df7ec) Line 123 + 0xd bytes C++
tridir.exe!juce::millisToLocal(const __int64 millis=1833029933770955, tm & result={...}) Line 70 + 0xd bytes C++
> tridir.exe!juce::Time::formatted(const wchar_t * const format=0x00755ee8) Line 300 + 0x16 bytes C++
...
cause millisSinceEpoch in Time class doesn’t seem a valid. or at least i don’t know what the hell is going on.
const String Time::formatted (const tchar* const format) const
{
tchar buffer[80];
struct tm t;
millisToLocal (millisSinceEpoch, t); // breaking here
and this with all the files and all the CD/DVD i insert into the case.
with local (variuos HD, sata usb and ide) or network paths (directly “\server” or mapped through a drive letter) it works seamlessly.
just to notice, why this shouldn’t work i don’t know, mikro$oft should pay for this…
