[fpc-pascal] PTCGraph Causing 217

James Richters james.richters at productionautomation.net
Wed Feb 3 03:38:28 CET 2021


Thank you for looking into this and figuring out the problem.  I tested it
with ptcpas.cfg with GDI in it and that does indeed prevent it from
crashing.  Thanks for the work around!
 
Please let me know when DirectX is working again.  I'm happy to help test on
different versions of Windows.
 
James
 
From: fpc-pascal <fpc-pascal-bounces at lists.freepascal.org> On Behalf Of
Nikolay Nikolov via fpc-pascal
Sent: Sunday, January 31, 2021 4:30 AM
To: james at productionautomation.net; 'FPC-Pascal users discussions'
<fpc-pascal at lists.freepascal.org>
Cc: Nikolay Nikolov <nickysn at gmail.com>
Subject: Re: [fpc-pascal] PTCGraph Causing 217
 
 
On 1/29/21 3:52 PM, Nikolay Nikolov wrote:
 
On 1/29/21 12:37 PM, James Richters wrote:
Any idea what's causing this crash yet?  Is there some way I can at least
detect the error and handle it myself instead of crashing?
I'll take a look and try to reproduce it today or tomorrow. Sorry, I've been
busy lately.
Ok, I reproduced it today. It appears that DirectX applications lose access
to their DirectDraw surfaces when a UAC screen appears. Thanks, Microsoft!
I'll need some time to provide a proper fix for that, but for now you can
try this as a workaround. Create a text file, called ptcpas.cfg in your
program's directory and type a single line in it:
GDI
This will disable the DirectX console and use GDI for rendering. This might
be slower (although, you might not notice the difference on a modern PC),
but should get rid of the problem. Please let me know if it doesn't work.
I'll try to get this fixed in the DirectX console as well, but that requires
more careful analysis and testing on different versions of Windows, so it'll
take some time.
Hope this helps,
Nikolay
 
James
 
 
From: fpc-pascal  <mailto:fpc-pascal-bounces at lists.freepascal.org>
<fpc-pascal-bounces at lists.freepascal.org> On Behalf Of James Richters via
fpc-pascal
Sent: Monday, January 11, 2021 9:37 AM
To: 'FPC-Pascal users discussions'  <mailto:fpc-pascal at lists.freepascal.org>
<fpc-pascal at lists.freepascal.org>
Cc: James Richters  <mailto:james.richters at productionautomation.net>
<james.richters at productionautomation.net>; 'Nikolay Nikolov'
<mailto:nickysn at gmail.com> <nickysn at gmail.com>
Subject: Re: [fpc-pascal] PTCGraph Causing 217
 
I've made a sample program that demonstrates the problem
https://gist.github.com/Zaaphod/936901eb5f31df5044d2bd36a7cf6c91
 
When I was testing it, I found out that the problem shows up also with
PTCCRT.Keypressed,
 
Procedure to re-produce bug in Putimage
1.            Run program in Windows
2.            Do something that activates Windows User Account Control like
open an administrator command prompt
3.            Program crashes with exitcode 217 EAccessViolation: Access
violation on line 108 which is doing Putimage, even if you answer NO to user
account control
 
Procedure to re-produce bug in Keypressed
1.            UnComment //Until ptccrt.Keypressed;   Comment out //Until
ptccrt.Keypressed;
2.            Run Program in Windows
3.            Do something that activates Windows User Account Control like
open an administrator command prompt
4.            Program crashes with exitcode 217 EAccessViolation: Access
violation on line 114 which is doing Keypresed (sometimes the error is on
putimage)
 
Other things that cause it:
Unplug monitor and plug it back in
Change Display settings
Putting computer to sleep
Unknown reasons. system just idle
 
James
From: fpc-pascal <fpc-pascal-bounces at lists.freepascal.org
<mailto:fpc-pascal-bounces at lists.freepascal.org> > On Behalf Of Nikolay
Nikolov via fpc-pascal
Sent: Thursday, January 7, 2021 2:17 AM
To: fpc-pascal at lists.freepascal.org
Cc: Nikolay Nikolov <nickysn at gmail.com <mailto:nickysn at gmail.com> >
Subject: Re: [fpc-pascal] PTCGraph Causing 217
 
 
On 1/6/21 5:44 PM, James Richters via fpc-pascal wrote:
I've been having issues with PTCGraph causing a runtime Error 217 :
EAccessViolation: Access violation at seemingly random times in my program.
The error is always on a line with either GetImage() or PutImage() but not
the same one.  The program can run for hours with no problems doing GetImage
and PutImage every second or so, and then it just stops with this error.
 
I know that if something disrupts the screen. like if I install a program
and the Windows user control thing asks for a password, that ALWAYS causes
this to happen, or if I unplug my monitor and plug it back in.. I find that
this happens.. but lately it seems to happen for no reason.
 
I don't know enough about it to track it down, but is there some way I Can
find out what causes this and prevent the error?    It would be nice if I
could detect the condition that causes this issue, and if I find that the
issues is present, just stop trying to do Getimage() or PutImage() until the
condition is resolved.
Can you provide an example program and exact steps to reproduce this bug?
Nikolay
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freepascal.org/pipermail/fpc-pascal/attachments/20210202/64bfc179/attachment-0001.htm>


More information about the fpc-pascal mailing list