Entwickler-Ecke

Off Topic - Grenzen der Macht von Delphi


Black Lightning - So 18.08.02 12:22
Titel: Grenzen der Macht von Delphi
Hallo,
ich habe mal gehört das 2 Dinge nicht mit Delphi zu machen seien...Betriebssystem und Treiber, da müsse man auf C++ zurückgreifen. Ein Betriebssystem hab ich sicherlich nie vor zu machen...aber wer weiss, vielleicht komm ich irgendwann in die Situation einen Treiber machen zu müssen. Beispielsweise für eine bestimmte Elektronik die über com angesprochen wird, oder was weiss ich.
Aber ist das tatsächlich mit Delphi nicht möglich?
Oder geht es wenn man asm einbindet?

Gibt es vielleicht sonst nochwas, was C oder C++ kann und Delphi nicht?

mfg
Black Lightning


SpeedyGTD - So 18.08.02 22:46

Würde mich auch mal interessieren, allerdings habe ich wirklich vor ein OS zu programmieren, hat aber noch ein bisschen Zeit :D
Ich denke aber das man mit Delphi auch Treiber und Betriebssysteme programmieren kann, dürfte nur ziemlich aufwendig sein.

Mfg SpeedyGTD


toms - Mo 19.08.02 07:50

Zitat:

Delphi ist ein Tool, dass dahingehend optimiert und entwickelt wurde, um schnellstmöglich Anwendungen für den Benutzermodus in Win32 (bevorzugt GUI) zu entwickeln.

Probleme:
- im Kernelmodus herrschen ganz andere Spielregeln,
- das Layout des resultierenden Images (PE/COFF-Format, kurz .exe und .dll) läßt sich beim Object Pascal Compiler/Linker nicht genügend beinflussen, um überhaupt erfolgreich vom Kernel akzeptiert zu werden
- Visual C++ ist die _einzige_ unterstützte Entwicklungsplattform für Anwendungen im Kernel-Modus...
- es gibt also folglich keine Units dafür und Du kannst bei 0 (nichts, nada, nil) mit reinem Assembler anfangen (sonst bekommst Du nichtmal die Init-Callback-Funktion hin), kein Speicher-Manager, keine Compiler-Magic, _keine_ Win32 API-Funktionen...
- ...selbst wenn sich jemand die Arbeit macht das Device Driver Kit (DDK) nach Object Pascal zu 'übersetzen', wird er feststellen, das selbige Sprache einige Features nicht hat, die dort ausgiebig benutzt werden ( z.B. Makros, 'fastcall' (Microsoft-spezifische Aufrufkonvention, vergleichbar mit 'register' in Pascal) und Unions (bedingt übersetzbar) ... )

Das waren nur die gröbsten technischen Probleme.
Alleine die Einarbeitung in das Thema Treiberentwicklung erfordert einen nicht zu unterschätzenden Aufwand. [...]

...insofern rate ich davon ab, zu versuchen mit Delphi (mal eben) einen Treiber zu schreiben.
Das haben andere schon getan, es reicht aber nicht zu mehr als: 'hm, geht mit viel Arbeit + HexEditor, aber macht irgendwie keinen Sinn'.

Ich hoffe das war deutlich genug. Dem interessierten Entwickler sei passende Lektüre (mind. DDK) empfohlen.

NicoDE