[erledigt] Seltsamer Compiler-Switch $H

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
alfware17
Beiträge: 134
Registriert: Di 14. Dez 2010, 23:27

[erledigt] Seltsamer Compiler-Switch $H

Beitrag von alfware17 »

Hallo , ich habe versucht den FPC zu befragen, aber der gibt nur bei $G und $I was aus...
was genau steuere ich mit den Optionen $H+ bzw $H-
Ich habe auf irgendwelchen Gründen in manchen alten Projekten explizit $H- stehen bei Units wie bei Lazarus Online und FPC Konsolenprogrammen.
Vordergründig ändert sich die EXE Größe. Im Internet habe ich was gelesen zu HEAP-Steuerung und daß man $H- nicht machen soll.

Ich hatte testweise auch wieder unterschiedliche Probleme mit den Codeseiten und Umlauten, das Verhalten von writeln('Hallo ', Änne')
und writeln('Hallo ' + 'Änne') scheint genau umgekehrt bei $H+ und $H- Da ich das Problem aus dem anderen Thread jetzt anscheinend für mich :-)
geklärt habe (wohl sind meine Windows Codepages 850 und 1252 bunt gemischt und vermatscht und außerdem macht mir die Lazarus IDE immer
fröhlich UTF-codierte Quelltextfiles mit den 2Bytes am Anfang), finde ich diesen Rückfall nicht lustig...
Also was hat es mit $H+ und $H- auf sich? Danke
Zuletzt geändert von alfware17 am Mo 4. Mär 2024, 10:04, insgesamt 1-mal geändert.

Mathias
Beiträge: 6210
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Seltsamer Compiler-Switch $H

Beitrag von Mathias »

Mit $H- erzwingst du Short-Strings, das sind die alten von Turbo-Pascal, welche 255 Zeichen aufnehmen können.

Bei $H+ ist ein string ein ansistring und bei $H- ist es ein Shortstring.
Oder anders gesagt, man sagt, ob die Stringlänge dynamisch oder statisch ist.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Benutzeravatar
theo
Beiträge: 10500
Registriert: Mo 11. Sep 2006, 19:01

Re: Seltsamer Compiler-Switch $H

Beitrag von theo »

ansistrings.png
ansistrings.png (47.82 KiB) 4370 mal betrachtet

alfware17
Beiträge: 134
Registriert: Di 14. Dez 2010, 23:27

Re: Seltsamer Compiler-Switch $H

Beitrag von alfware17 »

Oh verstehe. Und jetzt weiß ich auch wieder wie das bei mir rein kam. Ich wollte absichtlich kompatibel bleiben. Wahrscheinlich wegen Zeichensatz. Ist schon 5 Jahre her. Da ich aber im Dos eh auf pchar umgestiegen bin, kann ich hier ruhig bei Ansistring bleiben. Es sei denn ich handele mir dann erneut ein Umlauteproblem ein. Vielleicht dann im Linux? (noch nicht getestet)
Gibt es weiterhin Probleme mit dem verketten durch + oder für die chr() und copy() Funktionen? Sorry wenn ich so dumme Anfänger Fragen stelle. Aber ich habe nun einen Nachmittag damit zugebracht meine ganzen Units auf mein Ausgabe CP850/1252/UTF Verfahren umzustellen und fand da nur als Nebeneffekt, dass es wieder einem Unterschied gibt, ob ich im writeln mit Komma oder mit plus trenne.

Sollte ich aufhören und.mir ein leichteres Hobby suchen?

Mathias
Beiträge: 6210
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Seltsamer Compiler-Switch $H

Beitrag von Mathias »

Sollte ich aufhören und.mir ein leichteres Hobby suchen?
Nur wegen diesen paar Buchstaben aufgeben ?
Ich hatte mich auch zuerst geärgert, das es mit den Zeichen nicht mehr so einfach wie bei Turbo-Pascal war.
Aber unterdessen habe ich gemerkt, das man sich um das gar nicht kümmern muss, dies läuft alles automatisch im Hintergrund ab.
Und wen alle Stricke reissen kann man noch ue, ae und oe nehmen. ZB. in OpenGL.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Antworten