Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi .net verwenden ??? (https://www.delphipraxis.net/100476-net-verwenden.html)

tabbi 28. Sep 2007 21:34


.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

Khabarakh 28. Sep 2007 21:47

Re: .net verwenden ???
 
Zitat:

Zitat von tabbi
.net unter Delphi for Win32

:gruebel: .
.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.

Elvis 28. Sep 2007 22:10

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.

tabbi 28. Sep 2007 22:20

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:
    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
Ich hoffe da gibts eine gute Lösung, dann brauch ich .NET garnicht.

Elvis 28. Sep 2007 22:23

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.

phXql 28. Sep 2007 22:33

Re: .net verwenden ???
 
Zitat:

Zitat von Elvis
Die .Net variante sieht ja absolut furchtbar aus. :shock:

Das hat VB so an sich :mrgreen:

Alexander 29. Sep 2007 10:00

Re: .net verwenden ???
 
Zitat:

Zitat von phXql
Zitat:

Zitat von Elvis
Die .Net variante sieht ja absolut furchtbar aus. :shock:

Das hat VB so an sich :mrgreen:

Genau das habe ich mir auch gedacht :mrgreen:

Elvis 29. Sep 2007 10:07

Re: .net verwenden ???
 
Zitat:

Zitat von Alexander
Zitat:

Zitat von phXql
Zitat:

Zitat von Elvis
Die .Net variante sieht ja absolut furchtbar aus. :shock:

Das hat VB so an sich :mrgreen:

Genau das habe ich mir auch gedacht :mrgreen:

Es ging mir mehr um die absolute Unfähigkeit, die sich in dem Code zeigt. Und natürlich die Verantwortungslosikgkeit solche Codes so ins Internet zu stellen, dass Unbefleckte glauben, es könnte etwas taugen.
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...

Khabarakh 29. Sep 2007 10:27

Re: .net verwenden ???
 
Zitat:

Zitat von Elvis
Wer konnte erkennen, dass der using-Block fehlte und die Datei nicht im Readonly-Modus geöffnet wurde, hmm?

Ist nicht fataler, aber das StreamReader => BaseStream => BinaryReader => BaseStream-Gehüpfe finde ich viel interessanter :stupid: . Und zeugt fast noch schöner von der Unverständnis des Autors.


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