You're all wrong. ALC has nothing to do with it. The PARTSIZE declaration is broken I'm afraid:
enum FileConstants {
PARTSIZE = 9728000ull,
BLOCKSIZE = 184320u,
EMBLOCKSIZE = 184320u
};
A simple trial & error:
const uint64 PARTSIZE2 = 9728000;
uint16 qqqq = 0xffff;
AddDebugLogLineM(false, logPartFile, CFormat(wxT("inttest %llu %llu")) % (qqqq * PARTSIZE) % (qqqq * PARTSIZE2));
result:
PartFile.cpp(321): PartFiles: inttest 1869320192 637524480000
It seems enums are limited to 32 bit, whatever type is used for assignment.
Fix: just kick the enum in Constants.h:
const uint64 PARTSIZE = 9728000ull;
const uint32 BLOCKSIZE = 184320u;
const uint32 EMBLOCKSIZE = 184320u;
Cheers, Stu