AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Programm entschlacken: JclStrings nimmt 500KB im Projekt ein?
Thema durchsuchen
Ansicht
Themen-Optionen

Programm entschlacken: JclStrings nimmt 500KB im Projekt ein?

Offene Frage von "Bernhard Geyer"
Ein Thema von Keks · begonnen am 27. Dez 2010 · letzter Beitrag vom 30. Dez 2011
Antwort Antwort
Seite 2 von 2     12   
Keks

Registriert seit: 25. Mai 2005
122 Beiträge
 
#11

AW: Programm entschlacken: JclStrings nimmt 500KB im Projekt ein?

  Alt 7. Jan 2011, 10:50
Alles klar, dann werde ich mal aktualisieren und danach nochmal Rückmeldung geben.
Vielen Dank für die Info!
  Mit Zitat antworten Zitat
Keks

Registriert seit: 25. Mai 2005
122 Beiträge
 
#12

AW: Programm entschlacken: JclStrings nimmt 500KB im Projekt ein?

  Alt 7. Jan 2011, 23:45
Vielen Dank, hat geklappt!
  Mit Zitat antworten Zitat
Keks

Registriert seit: 25. Mai 2005
122 Beiträge
 
#13

AW: Programm entschlacken: JclStrings nimmt 500KB im Projekt ein?

  Alt 29. Dez 2011, 03:34
Nun steh ich doch tatsächlich ziemlich genau ein Jahr später erneut vor dem gleichen Problem.

Ich habe auf einem neuen Rechner meine Entwicklungsumgebung mit Delphi XE erneut aufgesetzt und alle Komponenten eingerichtet, darunter auch JCL+JVCL. Ich habe von beiden die aktuellen Daily-Builds genommen, da sich die JCL-Version aus dem aktuellen Stable JVCL-Paket nicht installieren ließ (irgendein Problem mit JclOtaUtils). Die beiden Daily-Builds wurden hingegen problemlos installiert.

Nach dem Kompilieren der Anwendung Stirnrunzeln: die exe ist ein gutes Stück größer als zuvor. Ein Blick in die Projekt-Analyse zeigt erneut das gleiche Bild wie vor einem Jahr: die JclStrings (BSS) belegt gut 500kB im Projekt.

Damals löste sich das Problem durch die Installation eines Daily Builds. Diesmal geht's leider nicht aktueller (JCL 2.4.0.4319). Ist in der Zwischenzeit bei JCL wieder was schiefgelaufen? Oder gibt es eine neue Lösung?

Geändert von Keks (29. Dez 2011 um 03:43 Uhr)
  Mit Zitat antworten Zitat
jbg

Registriert seit: 12. Jun 2002
3.482 Beiträge
 
Delphi 10.1 Berlin Professional
 
#14

AW: Programm entschlacken: JclStrings nimmt 500KB im Projekt ein?

  Alt 29. Dez 2011, 08:20
Schau mal in deine JclStrings.pas, ob dort "UNICODE_RTL_DATABASE" vorkommt. Wenn das fehlt, dann stimmt was mit dem Daily Build nicht (oder es werden keine neueren mehr erzeugt)


Du kannst das auch in einem eigenen Programm Testen:
Delphi-Quellcode:
program Test;
{$I jcl.inc}
begin
  {$IFNDEF UNICODE_RTL_DATABASE}
  'Da stimmt was nicht wenn das hier nicht Delphi XE ist'
  {$ENDIF}
end.
  Mit Zitat antworten Zitat
Keks

Registriert seit: 25. Mai 2005
122 Beiträge
 
#15

AW: Programm entschlacken: JclStrings nimmt 500KB im Projekt ein?

  Alt 29. Dez 2011, 14:56
UNICODE_RTL_DATABASE kommt dort sogar recht häufig vor. 61 Mal um genau zu sein. Ich hab die Datei hier mal angehängt, vielleicht siehst Du da ja eher was.

Allerdings frage ich mich, wo UNICODE_RTL_DATABASE überhaupt definiert wird.
In der jcl.inc steht:
Delphi-Quellcode:
{$IFNDEF HAS_UNIT_CHARACTER}
  {$UNDEF UNICODE_RTL_DATABASE}
{$ENDIF ~HAS_UNIT_CHARACTER}
(wozu das "~"?)

Habe in meiner Anwendung mal getestet und es ist weder UNICODE_RTL_DATABASE noch HAS_UNIT_CHARACTER definiert. Und nu?
Angehängte Dateien
Dateityp: zip JclStrings.zip (26,2 KB, 0x aufgerufen)
  Mit Zitat antworten Zitat
USchuster

Registriert seit: 12. Sep 2010
Ort: L.E.
120 Beiträge
 
Delphi XE3 Professional
 
#16

AW: Programm entschlacken: JclStrings nimmt 500KB im Projekt ein?

  Alt 29. Dez 2011, 15:55
UNICODE_RTL_DATABASE kommt dort sogar recht häufig vor. 61 Mal um genau zu sein. Ich hab die Datei hier mal angehängt, vielleicht siehst Du da ja eher was.

Allerdings frage ich mich, wo UNICODE_RTL_DATABASE überhaupt definiert wird.
In der jcl.inc steht:
Delphi-Quellcode:
{$IFNDEF HAS_UNIT_CHARACTER}
  {$UNDEF UNICODE_RTL_DATABASE}
{$ENDIF ~HAS_UNIT_CHARACTER}
(wozu das "~"?)
~ steht bei uns in diesem Fall dafür das dieses ENDIF einen Block beendet wo HAS_UNIT_CHARACTER nicht definiert ist (für den Compiler hat das keinerlei Bedeutung)

Habe in meiner Anwendung mal getestet und es ist weder UNICODE_RTL_DATABASE noch HAS_UNIT_CHARACTER definiert. Und nu?
HAS_UNIT_CHARACTER wird durch jedi.inc definiert und UNICODE_RTL_DATABASE durch jcldxx.inc (siehe jcl.inc; jcld15.inc für XE und jcld16win32.inc für XE2 Win32).

Für folgendes Programm sehe ich mit XE2 den folgenden Output, wenn ich UNICODE_RTL_DATABASE in jcld16win32.inc aktiviere. Vielleicht liegen bei Dir irgendwo veraltete Includes rum die Dein Programm verwendet.

Code:
RTLVersion: 23.0
HAS_UNIT_CHARACTER
UNICODE_RTL_DATABASE
Delphi-Quellcode:
program Project31;

{$APPTYPE CONSOLE}

{$I jcl.inc}

begin
  WriteLn('RTLVersion: ', RTLVersion:2:1);
  {$IFDEF HAS_UNIT_CHARACTER}
  WriteLn('HAS_UNIT_CHARACTER');
  {$ENDIF HAS_UNIT_CHARACTER}
  {$IFDEF UNICODE_RTL_DATABASE}
  WriteLn('UNICODE_RTL_DATABASE');
  {$ENDIF UNICODE_RTL_DATABASE}
  ReadLn;
end.
  Mit Zitat antworten Zitat
Benutzerbild von TKC
TKC

Registriert seit: 21. Apr 2004
Ort: Tuningen
367 Beiträge
 
Delphi XE2 Enterprise
 
#17

AW: Programm entschlacken: JclStrings nimmt 500KB im Projekt ein?

  Alt 30. Dez 2011, 13:27
Hallo,
ich habe im Installer der JCL unter Conditional Defines -> Unicode Options
das Häkchen bei Prefer RTL Database gesetzt und dann installiert.
Dann passt es auch mit der Größe.
Miniaturansicht angehängter Grafiken
sshot-1.png  
  Mit Zitat antworten Zitat
Keks

Registriert seit: 25. Mai 2005
122 Beiträge
 
#18

AW: Programm entschlacken: JclStrings nimmt 500KB im Projekt ein?

  Alt 30. Dez 2011, 14:48
Hallo,
ich habe im Installer der JCL unter Conditional Defines -> Unicode Options
das Häkchen bei Prefer RTL Database gesetzt und dann installiert.
Dann passt es auch mit der Größe.
Der Wahnsinn! Genau das war's. Wow, vielen Dank!!

Jetzt frage ich mich dann doch, warum diese Option scheinbar geändert wurde, denn damals hatte ich das nicht manuell eingestellt.
Und zudem: Wozu ist sie überhaupt gut? Der einzige für mich sichtbare Unterschied ist die Dateigröße.
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#19

AW: Programm entschlacken: JclStrings nimmt 500KB im Projekt ein?

  Alt 30. Dez 2011, 15:18
Und zudem: Wozu ist sie überhaupt gut? Der einzige für mich sichtbare Unterschied ist die Dateigröße.
Einmal nimmst du bei UpperCase & Co-Funktionalität die Implementierung der RTL und einmal aus der JCL.
Und bei beiden (darauf würde ich wetten) gibt es mindestens bei 2-3 Zeichen unterschiede gibt (so wie .NET, Java, Win32 und ElPack hier jeweils bei ein paar Zeichen eigene Interpretation der Unicode-Standards haben).
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:44 Uhr.
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