>Hello,
>
>I have installed the latest Visual Studio Service Pack (6 I think?) to try solve some HP Printer driver nightmares (blue screens) some of my clients are experiencing with my VFP6 app. There didn't appear to be much about redistribution in the Readme files, and I can't install the Service Pack on the clients machine because he only has VFP6 runtime. Does anyone know if I need to do more than recompile my application and upload it to a client in order to try to resolve the printer driver issue(s) ?
>
You need to redistribute the new runtimes for VFP6 SP5 to get the fix added internally to VFP; recompiling without sending out the new runtimes does not solve the problem. The runtime changes VFP's behavior, which solves the main problem with HP's drivers, a failure to reset the floating point processor before returning from the driver. Alternatively, you can call the _fpreset() API call after every invocation of the Windows Printer interface, which will force the reset, and it applies to all versions of the VFP runtime, including VFP 3 and 5, but requires making the call every time the printer driver is invoked, including previewing without actually printing or printing to a file with the HP driver active:
DECLARE _fpreset IN MSVCRT.DLL
=_fpreset()
>I am also suprised that this is not a more common topic of discussion. I have encountered at least half a dozen HP Printers that crash the entire system if you try printing twice in VFP6 using the driver that came with the printer. It seems to happen often in my little app (mainly HP with printers) and the only fix I have discovered is to use generic HP drivers from the Windows CD. But this usually happens after the user has crashed my app over and over trying to print, and finally contacts me for a solution.
>
It's in the FAQ, and has been beaten to death in the past. There's an entry in the MSKB if you searched Microsoft's support site for VFP that outlines the _fpreset() solution going back a number of years.