Nowadays using a parallel port under Windows (or DOS) is rather uncommon. Since Win95 the registers are no longer easy to use. On newer operating systems you need either root privileges or a kernel driver.
First a few questions that would be important:
1. With which operating system should the port be accessed?
2. Under which base address is the port to be accessed (in former times: 0x278, 0x378 or 0x3BC).
About the circuit:
A parallel port consists of 3 registers. The 8-bit data register usually only works as an output with 8 data lines. So you can connect here up to 8 ICs of the type 74HCT595 each with pin 14.
Then there are status and control registers with 4 pins each.
To the outputs 15,1,2,3,4,5,6,7 you can connect LEDs with one resistor each. Better would be an additional MOS-FET.
The two clock inputs for storage and shift must each be connected with a line to a pin of the control register. The reset pins (10) must be connected to +5V, the enable pins (13) to ground, later they can also be controlled with one bit each of the control register.
If you have more than one 74HCT595, you can connect all reset, enable and clock lines to one pin each.
The 74HCT595 needs its own power supply with 5V at pin 16 and GND at pin 8. Here you could tap the voltage at a USB port, because the parallel port usually offers nothing here.
There are also old projects that you can use as a base with C++. E.G.
Parallel Port Pin Control Library (PaPiC)
https://www.codeproject.com/Articles/19402/Parallel-Port-Pin-Control-Library-PaPiC
I would also like to point out that using an HC type will probably require many pull-up resistors.I would therefore rather use an HCT.