Well that's fantastic news because I am using C++ and I am using JUCE. This is the first thing I've used JUCE for and I didn't realize it had something built in for handling child processes... Really a huge relief as the windows api has indeed been a massive headache. Just managed to get pipes working but I am more than happy to tear it back down.
I can't imagine a more satisfying reply, I'll take that fix if you don't mind.
In the file juce_win32_Threads.cpp, there's the line :
if (CreatePipe (&readPipe, &writePipe, &securityAtts, 0)
If that is left like that, it may cause for example CDP's pvoc.exe to hang with long input files. Changing it to :
if (CreatePipe (&readPipe, &writePipe, &securityAtts, 1048576)
Should fix that problem. The number 1048576 is of course a bit arbitrary, it may be too big for most uses of the ChildProcess and may still be too small for some cases. But so far that has worked for me. (The number is the buffer size used by the pipe. The number 0 makes the buffer size be some undefined default size which doesn't play well with some of the CDP programs.)