Hi Emmanuel,
26 was a good hint. It is interpreted as eof on windows, when the file is opened in text mode. Also cr-lf is translated into a single lf, which is also not correct for reading zim files. I added the O_BINARY-flag to the call to open.
Also I removed <unistd.h> from uuid.cpp.
For what is io.h needed? Which error message do you get? Linux don't need it and can't even find io.h on my linux boxes.
Tommi