![]() |
DECMath für Neu
Vielleicht hat es schon wer mitbekommen.
Ich hatte vor Kurzem begonnen das alte "öffentliche" DECMath erst ins GitHub zu verschieben (als Dokumentation), sowie in eine Delphi7-DLL zu packen, um es für aktuelle Delphis verfügbar zu machen. (ob und wann das DECMath nochmal neu, direkt für neue Delphis kommt ... wer weiß) Als Quelle diente ein Verzeichnis (einst entpackte ZIP), welches ich auf meiner Platte fand. Ursprünglich vermutlich bei Michael runtergeladen und entstanden aus ![]() Aktuell erstmal die Schnittstellen nahezu 1:1 umgesetzt. (Überlegung für ein Kapselung in Custom-ManagedRecords existiert. einmal um die Standardoperatoren nutzen zu können, also + - div mod, sowie um die Codevervollständigung besser einzubeziehen ... optional, weil eigentlich war Hagen eher gegen sowas, aber seine Meinung bezog sich auf die damaligen einfachen "Record-Methoden") Einige Methoden sind derzeit als deprecated markiert, weil dort aufgepasst werden muß. Vor allem an
Delphi-Quellcode:
und
TVarRec
Delphi-Quellcode:
darf kann kein String/UnicodeString übergeben werden. (AnsiString, WideString und ShortString sind möglich)
array of const
Auch die Methoden mit TStream sind aktuell nicht benutzbar. Also für Delphi 5, 6 und 7 ist es ja direkt nutzbar. Über die neue DLL wäre es ab Delphi 2006 nutzbar (es gab mal DCUs für 2006 und 2007, aber die wurden nicht veröffentlicht), aber durch einige Exceptions beim Programmende, und deren Bugfix, dürfte es nun vermutlich ab Delphi 2010/XE lauffähig sein (manuelles DelayedLoading). Getestet wurde es mit Delphi 11.3 ![]() ![]() ![]() ![]() DEC Part I ( ![]() Aber egal, da das alte DEC eh niemand nutzt und es somit nicht in den Suchpfad gehört. :zwinker: DEC Part II aka DECMath liegt nur als DCUs vor ( ![]() ![]() Sowie neuerdings als DLL ( ![]() ![]() ![]() Die Testanwendung ![]() ![]() Suchpfade sind nicht nötig ... nur die DECMath.pas ins Programm aufnehmen und die DLL in EXE-Verzeichnis, bzw. in dem DLL-Suchpfaden. PS: Falls hier noch jemandem was zu einfällt ... ![]() Und nun nur noch eine kleine Linksammlung (TODO: bissl aufräumen und ins Git damit)
(Seiten gekapert und durch heimliche CasinoWerbung ersetzt) www.wolfgang-ehrhardt.de ![]() www.michael-puff.de ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
AW: DECMath für Neu
Exceptions beim Programmende wurden behoben. (bei/nach Entladen der DLL)
Ich war auf einen Bug im Delphi gestoßen, aber zum Glück ließ er sich einfach beheben. VAR-Parameter einer Delphi-Funktion schrieb nicht in eine Inline-Variable und anschließend knallte es, weil dadurch das SharedMemory nicht funktionierte (GetMem und Co. zeigten auf NIL) ![]() Außerdem muß jetzt nicht mehr auf Unicode geachtet werden, denn in Parametern mit
Delphi-Quellcode:
und
TVarRec
Delphi-Quellcode:
wird der String/UnicodeString abgefangen und intern auf AnsiString gecastet.
array of const
Sowie die teilweise komplett inkompatible Klasse TStream, zwischen neueren Delphis und Delphi 7, wurde durch TBytes bzw. TArray<Byte> ersetzt. (zumindestens in den meisten Funktionen ... in einigen Interface-Typen ging es noch nicht, aber Jenes ist erstmal weiterhin mit deprecated markiert und wirft bei Verwendung eine Compilermeldung ... falls jemand sowas liest :angle2:) Seit Equals, GetHashCode und ToString sind viele wichtige Offsets verschoben, vor allem jene zu VMT und ClassType. :wall: |
AW: DECMath für Neu
Mal eine ganz andere Idee: Warum nicht golang verwenden (math/big) und die Funktionen über eine shared library in Delphi verfügbar machen?
|
AW: DECMath für Neu
Nja, hier geht es erstmal um eine Delphi-Komponnte, nur das aktuell die Quellcodes noch nicht öffentlich sind
und es aktuell auch noch nicht möglich ist das neu kompilieren zu lassen. Hagen wollte kein Geld für ein neues Delphi ausgeben und eine konstenlose Version gab es damals nicht. Daher gab er auch die neuen DCUs nicht offiziell raus, weil er zum Kompilieren die Trial genutzt hatte. Deswegen nutze ich hierfür auch nur die offiziell öffentlichen Quellen. (auch wenn Hagen selbst sich nicht mehr beschweren könnte ... insgesammt 2 oder 3 aktuell immernoch lebende Leute müssten aber sein Erbe übernommen haben) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:47 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz