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 :shock:
Error_Diff.JPG
Error_Diff.JPG (171.48 KiB) 6826 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.

Code: Alles auswählen

DIR *.PRG /B > PROJECT.XPJ
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.