![]() |
Module in Delphi.Net für C# schreiben
Sagt mal.... (mal :mrgreen: )
Ich sitz hier grad mit einem Programmierer, der in C# eine Anwendung schreibt. Ich bin zu faul, mir jetzt mal eben C# anzueignen und so wollte ich eine Delphi-Klasse mal eben mit Delphi.NET durchkompilieren und ihm zur Verfügung stellen. Die einzige Möglichkeit bisher ist einen dot.net DLL mit sagenhaften 1.5 MB :shock: bei ca. 200 Zeilen Code. Gibt es kein dot.net pendant zu *.obj oder *.dcu Dateien? Schließlich befinden wir uns doch dank dot.net in *einer* Welt, oder? Kann mir da mal jemand einen Tipp geben? |
Re: Module in Delphi.Net für C# schreiben
Kannst du nicht einfach ne delphi.NET klasse schreiben und dann von C# aus drauf zugreifen? Sollte doch eig. funktionieren...
|
Re: Module in Delphi.Net für C# schreiben
VCL.Net oder Winforms?
|
Re: Module in Delphi.Net für C# schreiben
Zitat:
Warum eine 200-Zeilen Unit eine 1,5 MB Assembly erzeugt ist mir aber ehrlich gesagt auch schleierhaft. Mal ganz grob: Was machst Du in der Klasse? Werden dort ggf. andere Units angezogen die das so aufblähen? |
Re: Module in Delphi.Net für C# schreiben
Zitat:
|
Re: Module in Delphi.Net für C# schreiben
Hiho,
@Interceptor: Genau das will ich ja. Klappt auch mit der DLL, nur wozu benötige ich 1.5MB? @mkinzler: Weder noch, einfach nur eine simple Klasse (Berechnungen). @Phoenix:
Delphi-Quellcode:
Uses SysUtils,
System.Globalization, Borland.Vcl.Variants, Borland.Vcl.XmlDoc, Borland.Vcl.XmlIntf; |
Re: Module in Delphi.Net für C# schreiben
hm, seltsam dass das nicht funktioniert...
Alternativvorschlag: Irgendwo auf der Borland-Seite gibts doch nen Delphi.NET 2 C# Konverter. Im Worst-Case eben deine Klasse ins entsprechende C# Pedant konvertieren lassen |
Re: Module in Delphi.Net für C# schreiben
Interceptor: Es funktioniert tadellos, aber wozu 1.5MB, das ist die Frage. Den Konverter zieh ich mir mal rein.
|
Re: Module in Delphi.Net für C# schreiben
Hallo!
Gab es nicht die Möglichkeit, Borland-DLLs in die eigene Assembly einzubinden? Ich glaube, wenn man sich die Eigenschaften der Borland-DLL in den Referenzen des Projektes ansieht, gibt es da die Option "Units verknüpfen" oder so. Ist das bei Dir, alzaimar, eingeschaltet? Das würde dann erklären, warum das so groß ist. Grüße Christian |
Re: Module in Delphi.Net für C# schreiben
Zitat:
|
DP-Maintenance
Dieses Thema wurde von "Phoenix" von "Programmieren allgemein" nach "Sonstige Fragen zu Delphi" verschoben.
Hier gehts auch um Delphi |
Re: Module in Delphi.Net für C# schreiben
Zitat:
Ich dachte du wolltest .Net Code schreiben? :mrgreen: Spass beiseite: Was du dir da zusammengeschrieben hast ist Code, der wie Delphi32 aussieht, und all die Kompatibilitätsdingsens brauchen nunmal Platz. Du musst also mindestens die Borland.Vcl extern referenzieren, oder du kompostierst es in dein Assembly hinein.[1] Ersteres lässt dich ein Mordsgerät mitliefern, zweites macht dein Assembly zu einem Mordsgerät. Probiere einfach bei den Funktionen zu bleiben, die .Net mitbringt. Und Delphi-Variants in .Net zu benutzen dürfte deinen C#-Kollegen eher zu unterdrückten Flüchen(Wenn du sein Chef bist :mrgreen:) oder ernsthaften Handgreiflichkeiten verleiten . Vermeide in .Net einfach jegliche delphi-spezifische Delphi-dingsens, die meisten davon wird man von C# aus nicht ohne Reflection benutzen können, die anderen sehen einfach furchtbar aus. System.Xml bringt schnieke XML-Klassen mit. System.Object ist bereits das was ein Variant im alten Delphi war, schlicht und ergreifend weil alles davon ableitet, selbst die primitiven Typen. [1]Kiek mal in die Referenzenliste deines Projektes und klicke mal auf die VCL. Im Objectinspector solltest du jetzt die Eigenschaften dieser Referenz bearbeiten können. |
Re: Module in Delphi.Net für C# schreiben
Hi Elvis,
da wird mir nun einiges Klar, obwohl ich nicht verstehe, wieso z.B. Variants (wenn ich sie nur lokal verwende) so einen Overhead produzieren, oder gar zu Handgreiflichkeiten führen. Denn ich verwende sie nur innerhalb der alten Delphi-Unit. Aber im Grunde genommen kann ich auf Variants komplett verzichten, denn ich verwende sie nur zur Abstraktion der XML-Nodevalues. Die sind aber ohnehin Strings, wobei deren Datentyp auch noch netterweise als Attribute ('xsi:type = 'xsd:double') mitgeliefert werden. Weiterhin verwende ich noch diverse Stringroutinen, die vermutlich auch ein entsprechendes dot.net Pendant haben... Nun gut, also werde ich doch mal nachsitzen und das VCL-Dingens (heißt das im englischen Original VCL-Thingies?) wegdingseln. Danke an Alle für die Aufklärung. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:46 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