Seite 1 von 1
Xbase++ : ErrorSys Konstanten
Verfasst: Sa, 26. Okt 2019 8:27
von AUGE_OHR
hi,
ist euch schon mal aufgefallen das die Xbase++ Konstanten z.b. für o:GenCode nicht mit Cl*pper übereinstimmen
- Error_Diff.JPG (171.48 KiB) 6825 mal betrachtet
Re: Xbase++ : ErrorSys Konstanten
Verfasst: Sa, 26. Okt 2019 8:39
von Tom
Spielt das eine Rolle? Wenn Du nur die Konstante verwendest, kann Dir doch egal sein, durch welchen Wert sie substituiert wird.
Re: Xbase++ : ErrorSys Konstanten
Verfasst: Sa, 26. Okt 2019 10:15
von AUGE_OHR
hi,
Tom hat geschrieben: ↑Sa, 26. Okt 2019 8:39
Spielt das eine Rolle? Wenn Du nur die Konstante verwendest, kann Dir doch egal sein, durch welchen Wert sie substituiert wird.
du siehst bei Snapshot 3 x Error.CH ...
eine Abfrage sieht so aus
Xbase++
Code: Alles auswählen
CASE oError:genCode == XPP_ERR_ZERODIV
CASE oError:genCode == XPP_ERR_OPEN .AND. ;
CASE oError:genCode == XPP_ERR_APPENDLOCK .AND. ;
Cl*pper & Co
Code: Alles auswählen
IF oError:genCode == EG_ZERODIV
IF oError:genCode == EG_OPEN .AND. ;
IF oError:genCode == EG_APPENDLOCK .AND. ;
es scheint mir also eine Rolle zu spielen ob man Cl*pper kompatible Werte für die Konstanten nimmt oder nicht.
eine Cl*pper ErrorSys.PRG / Error.CH kann man nicht so einfach nach Xbase++ übernehmen und umgekehrt.
p.s. sind im Cl*pper Bereich und als Warnung gedacht das man nicht lange rum rätzelt was da schief läuft.
Re: Xbase++ : ErrorSys Konstanten
Verfasst: Sa, 26. Okt 2019 10:39
von Tom
Na klar spielt es eine Rolle, welche Ersetzung erfolgt. Viele Konstanten gab es unter Clipper auch überhaupt nicht, und einige, die es für Clipper gab, kennt Xbase++ nicht mehr. Aber das ist doch das Elegante an Konstanten - Du kannst den gleichen Code verwenden, ohne Dich darum scheren zu müssen, durch welchen Wert konkret ersetzt wird, vorausgesetzt, Du bindest die korrekten Regeln ein.
Re: Xbase++ : ErrorSys Konstanten
Verfasst: So, 27. Okt 2019 1:28
von AUGE_OHR
hi Tom,
wenn die Konstanten einen unterschiedlichen Wert haben heisst es das o:GenCode einen "anderen" Wert liefert
wie du richtig sagst ist es einer Konstanten egal welchen Wert die hat aber der Wert von Xbase++ o:GenCode unterscheidet sich zu Cl*pper was nicht kompatible ist.
das ist das Problem wenn man einen Cl*pper Source (incl. *.CH, LNK, RMK) mit Xbase++ zusammenbaut.
es wird ja kein Compiler/Linker Fehler ausgegeben weil *.CH im Verzeichnis ... erst bei einem Absturz ist etwas "anders" ...
nachdem ich Errorsys.PRG aus Project.XPJ rausgeworfen hatte kam die "normale" Xbase++ Errorsys Meldung zum Vorschein.
also hab ich mir das mal genauer angesehen und stiess auf Xbase++ o:GenCode was unterschiedliche Werte liefert.