AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Tutorials Delphi.NET für MS.NET 2.0 - Es geht :)
Tutorial durchsuchen
Ansicht
Themen-Optionen

Delphi.NET für MS.NET 2.0 - Es geht :)

Ein Tutorial von sakura · begonnen am 17. Mär 2006 · letzter Beitrag vom 13. Okt 2006
Antwort Antwort
Benutzerbild von sakura
sakura
Registriert seit: 10. Jun 2002
Hinweis: Der originale Beitrag ist hier zu finden: http://delphi-notes.blogspot.com/200...or-net-20.html

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:
program SimpleSampleNET2;
{$APPTYPE CONSOLE}
uses
  System.Text;
begin
  System.Console.BackgroundColor := ConsoleColor.Blue;
end.
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:
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:
dccil -CC -NSC:\WINDOWS\Microsoft.NET\Framework\v2.0.50727 --clrversion:v2.0.50727 --no-config SimpleSampleNET2.dpr
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.

Kopiere die Datei $(BDS)\source\dotNet\rtl\Borland.Delphi.System.pas in das Verzeichnis der "komplexen" Konsolenanwendung und führe folgenden Befehl aus:
Code:
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
. Damit wird erfolgreich die System-Unit für .NET 2.0 kompiliert!

Jetzt noch einmal den ersten Befehl:
Code:
dccil -CC -NSC:\WINDOWS\Microsoft.NET\Framework\v2.0.50727 --clrversion:v2.0.50727 --no-config SimpleSampleNET2.dpr
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.

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

......
Ich bin nicht zurück, ich tue nur so
 
Benutzerbild von Phoenix
Phoenix
 
#2
  Alt 17. Mär 2006, 11:54


Daniel, Du bist ein Schatz!
Sebastian Gingter
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

 
Delphi 11 Alexandria
 
#3
  Alt 17. Mär 2006, 11:57
Zitat von Phoenix:


Daniel, Du bist ein Schatz!
Eine Schüssel Brekkies ist jedenfalls immer willkommen Aber daran denken, Generics gehen davon noch nicht

......
Daniel W.
  Mit Zitat antworten Zitat
Elvis

 
Delphi 2010 Professional
 
#4
  Alt 17. Mär 2006, 12:09
Zitat von sakura:
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.
Old car...
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.
Robert Giesecke
  Mit Zitat antworten Zitat
Benutzerbild von Ralf Kaiser
Ralf Kaiser

 
Delphi 10.3 Rio
 
#5
  Alt 13. Okt 2006, 08:10
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 )

Ciao,
Ralf
Ralf Kaiser
  Mit Zitat antworten Zitat
Elvis

 
Delphi 2010 Professional
 
#6
  Alt 13. Okt 2006, 08:46
Zitat von Alfi001:
ich habe das beschriebene mal ganz frech mit Delphi 2005 ausprobiert und es klappt auch!
Wie gesagt, old car.
Robert Giesecke
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:44 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz