Article ID: 253356
Article Last Modified on 11/17/2003
APPLIES TO
- Microsoft Visual FoxPro 6.0 Professional Edition, when used with:
- Microsoft Windows 95
- Microsoft Windows 98 Standard Edition
This article was previously published under Q253356
SYMPTOMS
When using a Hewlett Packard LaserJet 4000 PCL5e or other third-party print driver, a non-fatal error can occur:
CAUSE
The third-party print drivers are not resetting the floating point coprocessor.
RESOLUTION
Here is a workaround to the behavior. The error message "API call caused an exception" is trappable and reports an error number of 2028. The error can be handled by placing an _fpreset() function call and a retry command in an error-handling procedure. The following code demonstrates the basic structure for trapping this error:
DECLARE _fpreset IN MSVCRT20.DLL ON ERROR DO errHand WITH ERROR() SET LIBRARY TO HOME()+"foxtools.fll" SET PRINTER TO GETPRINTER() ? _wfindtitl("Command") && Error occurs at this point PROCEDURE errHand PARAMETERS _lcError DO CASE CASE _lcError = 2028 && API call caused an exception _fpreset() RETRY OTHERWISE ERROR _lcError ENDCASE ENDPROC
STATUS
This behavior is by design.
MORE INFORMATION
Steps to Reproduce the Behavior
- Install a HP LaserJet 4000 PCL5e print driver.
Copy the following code into a FoxPro program:
SET LIBRARY TO HOME()+"FOXTOOLS.FLL" SET PRINTER TO GETPRINTER() ? _wfindtitl("command")
- Execute the new program.
- Choose the HP LaserJet 4000 PCL5e print driver. The error message listed in the "Symptoms" section is displayed.
REFERENCES
For additional information, click the article number below to view the article in the Microsoft Knowledge Base:
183522 FIX: Divide by Zero Creates Err with Third-Party Print Drivers
182137 PRB: Memory Error with HP LaserJet 4000 TN PCL 5e Driver
Keywords: kbprint kbprb kb3rdparty KB253356