Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Di Apr 16, 2024 05:28

Foren-Übersicht » Sonstiges » Meinungen zu den Projekten
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 169 Beiträge ]  Gehe zu Seite Vorherige  1, 2, 3, 4, 5, 6, 7, 8 ... 12  Nächste
Autor Nachricht
 Betreff des Beitrags:
BeitragVerfasst: Fr Jan 18, 2008 13:17 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Ersetze mal bitte folgenden Code.
Code:
  1.     procedure SwapText(pText: pWideChar; Count: Integer);
  2.     begin
  3.       while Count > 0 do begin
  4.         pWord(pText)^ := SWAPWORD(pWord(pText)^);
  5.         Inc(pText);
  6.         Dec(Count);
  7.       end;
  8.     end;
  9.  
  10. ...
  11.  
  12.         Move(pTempBuffer^, pTemp^, (ttRecord.uStringLength shr 1) * 2);
  13.  
  14.         SwapText(pTemp, ttRecord.uStringLength shr 1);


Das ist das was ich in jedem Fall anpassen werde. So oder so ähnlich. Wobei alleine der Move Befehl ausreichen sollte. Denn dort kann es passieren, dass das letzte Zeichen überschrieben wird. Durch das Count bei SwapText wäre das letzte #0 nicht mehr notwendig. Denn wenn der in der Schleife kein Ende findet, dann rauscht der über das Ende hinweg. Aber das darf sollte nicht in einem Stack Überlauf enden sondern nur in den AVs.

Falls das auch nichts ändert dann schick mir mal das Projekt zu. Ich vermute an dem Stack Überlauf wird das nichts ändern. Und das richtige Projekt ist wahrscheinlich eher schwierig, oder?

Wobei ich nicht weiß wann ich dazu komme mir das mal anzuschauen. Ich habe gestern meinen Rechner neu gemacht und der ist noch sehr blank.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Jan 18, 2008 13:27 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Mai 29, 2006 21:13
Beiträge: 142
Wohnort: Ballenstedt/Sachsen-Anhalt
Interessant...

Ich hab die Änderungen mal einzeln gemacht. Das Move hat rein gar nichts geändert, aber dafür die geänderte SwapText (die sogar einzeln).

Frage mich nur, wie der da zu so 'kreativen' Fehlermeldungen kommt...

_________________
Gott sei Dank bin ich Atheist!


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Jan 18, 2008 13:39 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Ist denn jetzt auch der Stack Überlauf weg?

Das ist ziemlich merkwürdig. Denn wie gesagt sollte alleine die Begrenzung des Moves vollkommen ausreichen. Dass es genau anders rum ist, finde ich äußerst unlogisch.

Lässt du mir den Code trotzdem mal zukommen? Und bitte MIT der Fontdatei die du verwendest. Nur um Verwechselungen auszuschließen. Mailadresse sollte ja bekannt sein. Anderenfalls auf der Teamseite.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Jan 18, 2008 14:01 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Mai 29, 2006 21:13
Beiträge: 142
Wohnort: Ballenstedt/Sachsen-Anhalt
Mail ist raus...

Der Überlauf ist weg, aber den konnte ich heute noch nicht wieder reproduzieren, gestern schon.

_________________
Gott sei Dank bin ich Atheist!


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Jan 18, 2008 15:16 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Die Zugriffsverletzung stammt daher, da der Text eigentlich gar kein Unicode Text ist. Denn als Platform PLATFORM_ID_APPLE_UNICODE ist erst dann Unicode, wenn die EncodingID größer 0 ist. Das hatte ich in meinen Quellen schon gefixt. Aber in den Öffentlichen ist das noch enthalten. Wird Zeit, dass ich die mal aktualisiere... :roll:

Folgendes anstelle der originalen Abfrage und dann knallts nicht mehr. Selbst mit dem originalen Move und SwapText.
Code:
  1.     if ((ttRecord.uPlatformID = PLATFORM_ID_MICROSOFT) and (ttRecord.uEncodingID in [0, 1])) or
  2.        ((ttRecord.uPlatformID = PLATFORM_ID_APPLE_UNICODE) and (ttRecord.uEncodingID > 0)) then begin


Was mit dem Stacküberlauf ist. Keine Ahnung. Wenn er noch mal auftreten sollte sag noch mal bescheid. Wobei ich aber auch so dabei etwas überfragt bin.

Der Schutz des Speicherbereiches sollte aber trotzdem eingebaut bleiben. Alleine schon aus Sichherheit vor manipulationen. Wobei man so aber auch echte Parserfehler verdeckt/vertuscht. Und das ist bei dem was du vor hast ja auch nicht ganz Sinn. ;)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Jan 18, 2008 16:16 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Mai 29, 2006 21:13
Beiträge: 142
Wohnort: Ballenstedt/Sachsen-Anhalt
Lossy eX hat geschrieben:
Und das ist bei dem was du vor hast ja auch nicht ganz Sinn. ;)

Woher weißt du was ich vor hab^^ Oder hat da einer DF gelesen... ;)

Jedenfalls gut dass das jetzt alles geklärt ist. Ist bei dem was ich vor hab tatsächlich nicht schlecht ;)

_________________
Gott sei Dank bin ich Atheist!


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Jan 18, 2008 16:28 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Martok hat geschrieben:
Woher weißt du was ich vor hab^^ Oder hat da einer DF gelesen... ;)

So etwas würde ich doch nie tun. :twisted:

Aber ja. Ich hoffe doch mal stark, dass es daran gelegen hat. Auch schon alleine deswegen, dass keine Fehler mehr auftauchen. ;)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Jan 27, 2008 13:51 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Aug 18, 2007 18:47
Beiträge: 694
Wohnort: Köln
Programmiersprache: Java
von Zeit zu Zeit werde ich wohl einen Blick in die Doku werfen müssen.
wenn du nichts dagegen hast werde ich mich mal am korrekturlesen beteiligen. :)

_________________
Es werde Licht.
glEnable(GL_LIGHTING);
Und es ward Licht.


Zitat aus einem Java Buch: "C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do it blows your whole leg off"

on error goto next


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Jan 27, 2008 17:58 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Tu dir keinen Zwang an. Dafür habe ich sie ja hochgeladen. ;)

Ich weiß allerdings nicht ob richtiges Korrekturlesen schon viel bringt. Denn bei einigen Sachen weiß ich, dass die nicht sonderlich liebevoll entstanden sind. Für den Anfang wäre es daher wohl besser, wenn du mir Stellen sagst die ich in jedem Fall noch verbessern muss. Also falls es irgendwo Verständnissprobleme gibt etc. Falls ich mich grob verschrieben habe (was zum Glück passiert *hust*), dann kannste das natürlich auch sagen. Musst derzeit nur nicht explizit nach suchen. ;)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Jan 29, 2008 10:34 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Aug 18, 2007 18:47
Beiträge: 694
Wohnort: Köln
Programmiersprache: Java
Jo alles klar. Ich werds mal in "Neu Textdatei (27).txt" sammeln :)

_________________
Es werde Licht.
glEnable(GL_LIGHTING);
Und es ward Licht.


Zitat aus einem Java Buch: "C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do it blows your whole leg off"

on error goto next


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Apr 23, 2008 13:19 
Offline
DGL Member
Benutzeravatar

Registriert: Do Jul 20, 2006 17:34
Beiträge: 52
Einfach nur toll bis jetzt :o , nur eine Sache fehlt mir noch:
Standardmäßig werden unter Windows, wenn man beispielsweise als Schriftart Arial nimmt, und dann japanische Zeichen benutzt, diese Zeichen nicht aus der Schriftart Arial genommen (die diese Zeichen garnicht enthält), sondern sie werden aus der Schriftart MS Gothic genommen.
Bei Textsuite ist das aber nun so, dass diese Zeichen einfach gar nicht angezeigt werden, anstatt eine Alternativschriftart zu benutzen.

Wenn du dieses Standardverhalten noch nachbauen könntest, ware es perfekt.

_________________
2+2=5
For extremely large values of two


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Apr 23, 2008 15:17 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Wilson hat geschrieben:
Einfach nur toll bis jetzt :o ,

Man dankt. :D

Wilson hat geschrieben:
Standardmäßig werden unter Windows, wenn man beispielsweise als Schriftart Arial nimmt, und dann japanische Zeichen benutzt, diese Zeichen nicht aus der Schriftart Arial genommen (die diese Zeichen garnicht enthält), sondern sie werden aus der Schriftart MS Gothic genommen.
Bei Textsuite ist das aber nun so, dass diese Zeichen einfach gar nicht angezeigt werden, anstatt eine Alternativschriftart zu benutzen.

Wenn du dieses Standardverhalten noch nachbauen könntest, ware es perfekt.

Windows macht so etwas? Ich meine, wenn man mit der WINAPI programmiert, dann werden fehlende durch den Defaultbuchstaben ersetzt. In der TextSuite sollten fehlende Buchstaben auch durch den Defaultbuchstaben ersetzt werden. Üblicherweise ist das ein leeres Viereck. Kann aber je nach Font ganz unterschiedlich sein.

Nichts desto trotz ist der Einwand durchaus berechtigt. Aber ganz automatisch wird das nicht funktionieren können. Denn dazu müsste ich wahllos die Fonts im Windows oder Linux suchen und öffnen. Je nach Font ("Arial Unicode" aus Windows 2000) kann das auch eine ganze Weile dauern. Da die Buchstaben aber meist erst beim Rendern erzeugt werden kannst du dir ausmalen das da niemand drüber glücklich sein wird. Zu mal man solch versteckte Funktionalität auch nicht mehr sinnvoll steuern könnte. Das ist mir aber besonders wichtig.

Aber ich denke ich habe eine andere Idee wie man das lösen könnte. Und zwar wird es später eine klare Trennung zwischen Creator (Zum Buchstaben erstellen) und Font (Buchstabencontainer) geben. Derzeit ist das noch ein einzelnes Onbjekt. Aber dann wird es so sein, dass man ein Font erstellt und einen Creator an das Font anhängen kann. Oder wie jetzt mit einer Methode in einem Schritt. Dann könnte ich es auch ermöglichen, dass man mehrere Creator an ein Font anhängen kann. Sollte ein Buchstabe im Hauptcreator nicht gefunden werden so wird im nächsten gesucht. Ich weiß aber noch nicht genau wann ich diese Trennung wirklich einbaue.

Wobei aber da dann das Problem existiert, dass der Entwickler vorher wissen muss was für Buchstaben kommen und welche sich im Font befinden. Was sicher auch nicht so praktisch ist. Ist jetzt aber auch nur so eine spontane Idee. Werds aber bei Gelegenheit in meinen Bugtracker aufnehmen. Evtl gibts ja auch noch andere Ideen dazu. ;)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Apr 23, 2008 17:06 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7804
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Ich hätte vorgeschlagen, das der Nutzer deines Textsystems einen globalen Alternativfont angeben kann. Wird das zeichen im aktiven Font nicht gefunden, wird das Zeichen aus dem Alternativfont angegeben. In der Doku zum Alternativfond sollten ein paar Fonts aufgeführt werden, die Unicode weitestgehend komplett unterstützen.

_________________
Blog: kevin-fleischer.de und fbaingermany.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Apr 24, 2008 10:29 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Ja das wäre sicher auch noch eine Alternative. Aber "Global" geht nicht so ganz. Denn die Kontexe der Bibliothek können aus verschiedenen Threads benutzt werden. Damit ich eine Sicherheit gewährleisten kann dürfe es nur Kontexbezogen global sein.

Was ich dabei aber eher als problematisch empfinde ist, dass nicht jedes Font den gleichen Stil (mit und ohne Serifen) hat. Wenn man diese verschiedenen Stile miteinander mischt, dann könnte ich mir gut vorstellen, dass das nicht mehr so schön aussieht. Und so spontan fehlt mir eine Idee wie man das dann evtl bewusst steuern könnte, da die Buchstaben ja nach Bedarf erstellt werden.


Das mit den Unicodefonts ist so eine Sache. Es gibt einige Fonts die nur einzelne Sprachen abdecken. Weswegen der Trend vermutlich eher zu einem zweit bzw dritt Alternativfont gehen wird. Denn so wirklich komplette Fonts gibts eher weniger. Das Arial Unicode von Microsoft ist extrem umfangreich (22MB mit 50377 Glyphen). Das war bei Windows 2000 dabei. Bei XP habe ich es bisher nicht gefunden. Aber leider ist das durch Copyrights geschützt und auf der Webseite auch nicht mehr zu finden. Das gab es mal zum allgemeinen Download. Schade eigentlich.

Wilson: Wo hattest du das denn gesehen? Denn genau genommen müsste es schon auf eine Lösung hinauslaufen bei der irgendjemand nach einer Alternative sucht. Denn der Entwickler kann wärend der Entwicklung nicht wissen welche Fonts im System installiert sein werden und wenn man die Fonts mit ausliefert bräuchte man auch keine Alternativfonts. Aber solch eine Suche muss in jedem Fall irgendwo vom Entwickler kontrolliert werden können. Zu mal da auch noch einige Informationen über die Fonts fehlen.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Apr 24, 2008 10:52 
Offline
DGL Member
Benutzeravatar

Registriert: Do Sep 02, 2004 19:42
Beiträge: 4158
Programmiersprache: FreePascal, C++
Ich mische mich hier mal ein... Wenn jemand auf der suche nach einem schönen und verhältnissmäßig vollständigen Unicode-Font ist, schaue er sich doch mal DejaVu an. Ich werde sie in meinem Strategy Game verwenden, sieht garnicht so schlecht aus, gibst als Monospace, mit und ohne Serifen.

Gruß Lord Horazont

_________________
If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung.
current projects: ManiacLab; aioxmpp
zombofant networkmy photostream
„Writing code is like writing poetry“ - source unknown


„Give a man a fish, and you feed him for a day. Teach a man to fish and you feed him for a lifetime. “ ~ A Chinese Proverb


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 169 Beiträge ]  Gehe zu Seite Vorherige  1, 2, 3, 4, 5, 6, 7, 8 ... 12  Nächste
Foren-Übersicht » Sonstiges » Meinungen zu den Projekten


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 9 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
cron
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.055s | 17 Queries | GZIP : On ]