Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi [nonVCL] - Runtimeerror nur unter XP... (https://www.delphipraxis.net/139202-%5Bnonvcl%5D-runtimeerror-nur-unter-xp.html)

turboPASCAL 25. Aug 2009 14:10


[nonVCL] - Runtimeerror nur unter XP...
 
Hi,

isch habbe da mal ne Frage, bei einem kleinen nonVCL-Programm kommt manchmal
unter XP ein Runtimeerror soundso.
Wenn das Progr. unter Vista läuft kommt es zu keiner Fehlermeldung, warum auch immer.


Nun meine Frage, kann man irgend wie solch einen Fehler "gescheid" Loggen und
wieso kommt der Fehler nur unter XP ?

[edit=tP]kommt kommt to kommt ;)[/edit]

himitsu 25. Aug 2009 14:25

Re: [nonVCL] - Runtimeerror nur unter XP...
 
Zitat:

Zitat von turboPASCAL
Nun meine Frage, kann man irgend wie solch einen Fehler "gescheid" Loggen

Try-Except drumrum und in 'nen Log schreiben?

Zitat:

Zitat von turboPASCAL
und wieso kommt kommt der Fehler nur unter XP ?

kommt drauf an, was gemacht wird, vielleicht macht ihr ja etwas, welches XP nicht mag?
(also eine bekannte Fehlernummer wäre schon ein guter Hinweis)

turboPASCAL 27. Aug 2009 12:56

Re: [nonVCL] - Runtimeerror nur unter XP...
 
Also, es ist zum verrückt werden.
Wenn ich das Prg unter XP mit D5 erstelle kommt es weder bei Vista und Xp ein Fehler.
Erstelle ich das Prg unter Vista mit D6, kommt Vista kein und bei Xp ein Fehler.
Beide Kompeiler haben die gleichen Einstellungen.( O+, I+ usw. )

Der Fehlerverursacher ist vermutlich diese Zeile:

Delphi-Quellcode:
n := BYTE((pl div 128)-1)
Wobei pl einen Wert zw. 0..255 ('n Byte halt) hat.

sirius 27. Aug 2009 12:59

Re: [nonVCL] - Runtimeerror nur unter XP...
 
Ich wüsste nicht, was in deiner letzten Zeile falsch ist. Aber es kann edoch ein zufälliger Speicherzugriffsfehler sein. Wenn du nonVCL arbeitest wird der nicht wie üblich angezeigt (denn die Fehlermeldung wird ja erst von der VCL hübsch aufbereitet). Hierr musst du selbst nacharbeiten und wie oben beschrieben ein schickes try Except drumherum etc. pp. Ohne jegliches try-Except fliegt dein Programm bei jeder Exception raus und stürzt ab.

DeddyH 27. Aug 2009 13:01

Re: [nonVCL] - Runtimeerror nur unter XP...
 
Wenn pl < 128 ist, versuchst Du -1 in Byte zu casten. Evtl. liegt es daran?

sirius 27. Aug 2009 13:10

Re: [nonVCL] - Runtimeerror nur unter XP...
 
Zitat:

Zitat von DeddyH
Wenn pl < 128 ist, versuchst Du -1 in Byte zu casten. Evtl. liegt es daran?

Daraus wird 255.

turboPASCAL 27. Aug 2009 13:15

Re: [nonVCL] - Runtimeerror nur unter XP...
 
Denke ich auch mal.

Zitat:

... Ohne jegliches try-Except fliegt dein Programm bei jeder Exception ...
Ja, ist mir bekannt und ich muss zugeben das ich damit sparsam umgegangen bin.

Aber dennoch wundert mich das Verhalten etwas.

Assertor 27. Aug 2009 13:16

Re: [nonVCL] - Runtimeerror nur unter XP...
 
Hi tp,

Zitat:

Zitat von turboPASCAL
unter XP ein Runtimeerror soundso
...
wieso kommt der Fehler nur unter XP ?

Runtimeerror soundso kommt unter XP wegen diesunddas :roll:

Hast Du Deinen Text vor dem Absenden eigentlich selbst noch mal gelesen? Du bist doch auch nicht erst seit gestern im Forum unterwegs (über 3500 Beiträge von Dir)...

Stichworte zur Fehlersuche:
Delphi Debugger, Remote Debugger, Exception Tracking (madExcept, EurekaLog), eigenes Loggen mit den zuvor genannten try-except Blöcken - Logging Klassen sind hier in der DP schon reichlich gepostet worden.

Gruß Assertor

himitsu 27. Aug 2009 13:19

Re: [nonVCL] - Runtimeerror nur unter XP...
 
eigentlich kann diese Zeile keinen Fehler erzeugen
und auf Byte(-1) wird 255

-1 als Integer ist $FFFFFFFF

also wenn pl ein Byte (0..255) ist, dann hat n entweder 1, 0 oder 255 (-1)

[edit]
da guckt man mal nicht hin und dann wird's nicht gesendet (redbox) und massig leute haben geantwortet :wall:

turboPASCAL 27. Aug 2009 13:23

Re: [nonVCL] - Runtimeerror nur unter XP...
 
Zitat:

-1 als Integer ist $FFFFFFFF
Ebend, ist das selbe wie DWORD(-1) etc. pp.

Ich tippe mal auf einen Fehler von Delphi 6 und schliesse mein Progrämmchen mal aus. :stupid:
Sicherlich irgend ein Pointer der ins nichts oder auf Datenreste zu greift.

@Assertor, ich habe schon das eine oder andere Versucht ohne mit Erfolg fündig zu werden.


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:50 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz