UPDATE: Checked my original program for tallying threads worked when threads got longer. Expected behaviour was to only read the necessary pages and update the .dat file. Unfortunately, it reads the new pages, and replaces the .dat file. Fixed now (I think... I have to wait until a thread gets longer to test).
I cannot understand how to integrate curl into c++ so I will just use system calls and place a prebuilt curl program in system32. It's an easy workaround.
For various benchmarks, see my threads: >here