![]() |
.net verwenden ???
hallo,
ich habe eine weitere Frage, diesmal zu .net unter Delphi for Win32 (2007). Ich habe schon viel gesucht, jedoch noch nichts gefunden wie ich nem Quellcode .NET Elemente benutzen kann ? Ich möchte den System.IO.StreamReader verwenden, wie kann ich da denn jetzt drauf zugreifen ? Danke !!! mfg tabbi |
Re: .net verwenden ???
Zitat:
.Net ist keine Library, sondern eine Plattform. Willst du die Klassen des Frameworks nutzen, musst du auch eine .Net-Sprache nutzen, deren Compiler dann statt Win32-Executables den .Net-Zwischencode (CIL) ausspuckt. Ab Delphi 2005 findest du zwei verschiedene Sprachvarianten von Delphi in den Projektvorlagen: einmal Delphi.Win32, der alte native Compiler, und einmal eben Delphi.Net. Ohne Delphi.Net gehts ned ;) . PS: Zur Klarstellung: Im Standalone-Paket D2007.Win32, also nicht dem neuen RAD-Studio, ist natürlich kein D.Net enthalten. |
Re: .net verwenden ???
Du könntest mit Hilfe der mscoree.dll eine Referenz auf einen StreamReader bekommen können.
Das ganze hat nur ein paar Nachteile: Nicht jede Methode wird funktonieren, da hier COM+ den kleinsten gemeinsamen Nenner vorschreibt, außerdem ist das alles über OleVariant/late binding. Also auch keine Code completion. Es macht man meisten Sinn, mit einer .Net Sprache eine Klasse zu schrieben, die für dich die Calls innerhalb von .Net macht, und dann diese als ComVisible markieren. Dadurch kannst du deine .Net Library dann in Delphi als COM Lib importieren. |
Re: .net verwenden ???
hmm ok,
evtl gehts auch ohne .NET ich such jediglich etwas was folgendes macht, also ich brauche folgenden code in einer Delphi Variante:
Delphi-Quellcode:
Ich hoffe da gibts eine gute Lösung, dann brauch ich .NET garnicht.
Private Function GetVersion(ByVal file As String, ByVal position As Integer) As String
Dim Version As Integer Dim subVersion As Integer Dim subsubVersion As Integer Dim br As New System.IO.BinaryReader(New System.IO.StreamReader(file).BaseStream) br.BaseStream.Seek(position + 18 + 14, IO.SeekOrigin.Begin) ' Begin reading after "version:" Version = br.ReadInt32 subVersion = br.ReadInt32 subsubVersion = br.ReadInt32 br.Close() If Version = 0 Then Return "" Return Version & "." & subVersion.ToString("00") & "." & subsubVersion.ToString("000") End Function |
Re: .net verwenden ???
Die .Net variante sieht ja absolut furchtbar aus. :shock:
Das geht in Delphi übrigens total easy mit TFileStream. Schaue einfach mal in der Hilfe dazu nach. |
Re: .net verwenden ???
Zitat:
|
Re: .net verwenden ???
Zitat:
|
Re: .net verwenden ???
Zitat:
Komplette Unfähigkeit und Verantwortungslosigkeit sind die Grundeigenschaften, die einen Menschen seit jeher zu einem VB'ler machten. Ignoranz ist auch ein nicht zu unterschätzender Vorteil. Wer konnte erkennen, dass der using-Block fehlte und die Datei nicht im Readonly-Modus geöffnet wurde, hmm? Ist schon sehr praktisch wenn man sich auf die Art komplett sinnlos Dateien sperrt. Der Unterschied zwischen einem VB'ler und einem Programmierer ist, dass der VB'ler keinen Schimmer davon hat, was ich gerade geschrieben habe, oder selbst wenn er es hat: Er wird sich immer noch denken "Mir doch egal...". Prost Mahlzeit... |
Re: .net verwenden ???
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:53 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