I've delved into the code and come up with some weird stuff that Richard was coding (and to be fair, he had zero documentation) but with my own docs on my Wiki, I'm making progress. However, I have noticed that on Windows running GCC as the compiler, it's almost impossible to get the QLWA header struct to be exactly 64 bytes, and also, a directory entry too seems to be bigger than 64 for most compilation options. One thing that's giving me grief is Richard's use of a 'time_t' for one of the dates in the QL Directory entry. That really does not compute - given that a time_t contains quite a few INTs and yet, it appears to be either 8 or 4 bytes depending on my compilation options. (See below.)
I've tried compiling in -m32 and -m64 to get 32 and 64 bit versions and with -fpac-struct=1 to pack to byte alignment, here's the results:
Code: Select all
On Windows with Gcc I get:
64bit (-m64):
HEADER = 66 (Should be 64)
QLDIR = 72 (Should be 64)
Time_t = 8. (Needs to be 4)
64bit (-m64 -fpack-struct=1)
HEADER = 64 (Should be 64)
QLDIR = 68 (Should be 64)
Time_t = 8. (Needs to be 4)
32bit (-m32):
HEADER = 66 (Should be 64)
QLDIR = 68 (Should be 64)
Time_t = 4. (Needs to be 4)
32bit (-m32 -fpack-struct=1)
HEADER = 64
QLDIR = 64
Time_t = 4. (Needs to be 4)
I'm wondering if anyone has managed to compile the utility and get it to work? I'm also thinking that the compiler version I'm using is way too modern:
Code: Select all
$ gcc --version
gcc.exe (tdm64-1) 5.1.0