I don't know much about MSVC 8 and its changes to previous version, but it looks that there is the following code in the
main() function:
Code: Select all
setvbuf(stdout,(char *)NULL, _IOLBF, 0);
that causes problems with the new msvcr or msvcrt library in that size (the last parameter) is constrained between 2 and INT_MAX.
This is what help says:
Buffer size in bytes. Allowable range: 2 <= size <= INT_MAX (2147483647). Internally, the value supplied for size is rounded down to the nearest multiple of 2.
Maybe in the new version, instead of returning a non-zero value, it throws an exception (ASSERTION), atleast in the debug version.
But I think that the crash for the release build is not due to this code, since assertions are switched off and i doubt that passing an illegal size corrupts the inner state of the crt libraries.
@huwnet: comment the lines saying
Code: Select all
setvbuf(stdout,(char *)NULL, _IOLBF, 0);
setvbuf(stderr,(char *)NULL, _IOLBF, 0);
and see where it goes from there.
or simply wait until Jeff has migrated to MSVC 8 himself.