![]() |
Delphi.NET für MS.NET 2.0 - Es geht :)
Hinweis: Der originale Beitrag ist hier zu finden:
![]() Bei einem Setup einer Make-File fiel mir gestern auf, dass der DCCIL Compiler (Delphi.NET Kommandozeilen Compiler) vom Borland Developer Studio 2006 einen Compilerschalter clrversion hat. Und er funktioniert, hier ein einfachstes Beispiel, der Rest ist dann Eure Sache ;) Hier erst einmal der Code der DPR-Datei:
Delphi-Quellcode:
Zugegeben, nichts Spannendes, aber dennoch ist da etwas dabei, dass eine Consolenanwendung so unter .NET 1.1 nicht kann. Die Klasse Console unterstützt Hintergrundfarben erst ab .NET 2.0. Entsprechend dankt es uns der Delphi.NET Compiler mit folgenden Hinweisen:
program SimpleSampleNET2;
{$APPTYPE CONSOLE} uses System.Text; begin System.Console.BackgroundColor := ConsoleColor.Blue; end.
Code:
.
[Pascal Error] SimpleSampleNET2.dpr(10): E2003 Undeclared identifier: 'BackgroundColor'
[Pascal Error] SimpleSampleNET2.dpr(10): E2003 Undeclared identifier: 'ConsoleColor' [Pascal Error] SimpleSampleNET2.dpr(10): E2066 Missing operator or semicolon Also los, ab zur Kommandozeile und das Ganze mal von Hand kompilieren. Ein erster Versuch sah bei mir so aus:
Code:
Der Compiler meldete Erfolg beim Laden vom .NET Framework Version 2.0.50727, leider aber konnte er die Unit Borland.Delphi.System für dieses Framework nicht finden. Diese muss also auch für .NET 2.0 kompiliert werden.
dccil -CC -NSC:\WINDOWS\Microsoft.NET\Framework\v2.0.50727 --clrversion:v2.0.50727 --no-config SimpleSampleNET2.dpr
Kopiere die Datei $(BDS)\source\dotNet\rtl\Borland.Delphi.System.pas in das Verzeichnis der "komplexen" Konsolenanwendung und führe folgenden Befehl aus:
Code:
. Damit wird erfolgreich die System-Unit für .NET 2.0 kompiliert!
dccil -CC -NSC:\WINDOWS\Microsoft.NET\Framework\v2.0.50727 --clrversion:v2.0.50727 --no-config -Q -M -y -Z -$D- Borland.Delphi.System.pas
Jetzt noch einmal den ersten Befehl:
Code:
Und seht da, Delphi hat es erfolgreich kompiliert. Jetzt kurz mal das Ergebnis aufrufen und der Erfolg wird in der Kommandozeile sichtbar. Die Hintergrundfarbe hat sich geändert, vorausgesetzt, diese war nicht vorher schon in Blau. ;-)
dccil -CC -NSC:\WINDOWS\Microsoft.NET\Framework\v2.0.50727 --clrversion:v2.0.50727 --no-config SimpleSampleNET2.dpr
Zum Test habe ich das Ganze in eine VM kopiert, welche nur das .NET 2.0 Framework hat (kein 1.1) und es läuft ohne Probleme. In einer VM mit ausschließlich .NET 1.1 läuft die Anwendung nicht korrekt, da diese die entsprechenden Eigenschaften nicht kennt ;-) ...:cat:... |
Re: Delphi.NET für MS.NET 2.0 - Es geht :)
:shock:
Daniel, Du bist ein Schatz! :love: |
Re: Delphi.NET für MS.NET 2.0 - Es geht :)
Zitat:
...:cat:... |
Re: Delphi.NET für MS.NET 2.0 - Es geht :)
Zitat:
Schaue dir mal fast alle (brauchbaren) Quellen zum Thema CF + D.Net an... ;) Sinnvoll ist das IMHO nur wenn man 2.0 Assemblies konsumieren will. Du kannst ja mal testen ob er eine Klasse, die von einem generic erbt (also selbst nicht mehr generisch ist) verkraftet. Wenn ja trifft der vorherige Satz sogar zu, alle Tests meinerseits ließen das ganze gehörig abrauchen, weshalb ich auch den Standpunkt D.Net <> .Net2.0 vertrete. ;) |
Re: Delphi.NET für MS.NET 2.0 - Es geht :)
Hallo,
ich habe das beschriebene mal ganz frech mit Delphi 2005 ausprobiert und es klappt auch! Man muss dazu lediglich die Datei <DELPHI-BIN-VERZEIHNIS>\dccil.cfg" löschen (besser: umbenennen), da Delphi 2005 den Schalter "-no-config" auf der Kommandozeile nicht kennt. Ansonsten wird das Programm auch mit D2005 genau wie beschrieben ohne Probleme erzeugt. Ich dachte das interessiert eventuell jemand der auch noch mit D2005 arbeitet (oder arbeiten muss :wink: ) Ciao, Ralf |
Re: Delphi.NET für MS.NET 2.0 - Es geht :)
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:42 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