Autor Beitrag
Perser
Hält's aus hier
Beiträge: 2



BeitragVerfasst: Do 21.11.02 11:17 
Bei einem Delphi Projekt möchte ich Assembler Befehle benutzen um den DruckerPort anzusprechen, da der Pascal Befehl Port nicht in Win32 vorhanden ist.
Ich habe die Routinen von m einem Lehrer aber bei den Befehlen gibts probleme bei den Befehlen in und out kommt immer privileged instructions , was bedeutet das und was kann ich dagegen machen?
dringende Hilfe :D
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Do 21.11.02 11:41 
Ich tippe mal so ganz aus dem Bauchraus, du benutzt Windows2000/XP?

Nun, da wirst du so nicht den Druckerport direkt ansprechen können, das sich die Hardware Abstract Layer zwischen das Betriebssystem und die Hardware schiebt und so alle Hardwarezugriffe kontrolliert.

Einzigste Möglichkeit ist ein Treiber aber den wirst du mit Delphi nicht schreiben können.

es gibt aber komponenten für Delphi, die dir da helfen können.
Perser Threadstarter
Hält's aus hier
Beiträge: 2



BeitragVerfasst: Do 21.11.02 11:56 
Kann ich, wenn ich auf windows 9x umsteige das problem beheben?
und wenn ja was passiert wenn ich wieder nach windows 2000 die exe kopiere ?
aber gute antwort und danke
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Do 21.11.02 12:09 
Unter Win98 dürfte es gehen. Aber die HAL ist doch immer noch da, auch wenn du die Exe auf einem Win98-Rechner kompilierst. Oder meinst du, du änderst was an Windows2000 wenn du die Exe auf einem anderen System erstellst? :roll:
=DrAgOn=
Hält's aus hier
Beiträge: 10



BeitragVerfasst: Do 12.12.02 15:00 
Delphi und Ports. :autsch:

Ich hab genau die gleichen Probleme.
Ich würd dir empfehlen eine andere Programmiersprache zu nehmen.

Ich will aber auch keine Werbung machen. :D

Gruss DrAgOn
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Do 12.12.02 15:04 
Auf Torry gibt es Treiber-Komponenten für die Serielleschnittstelle.

Andere Programmiersprache ist gut. Treiber kannman nur mit dem VC kompilieren.

Ich darf mal Nico Bendlin zitieren:
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

So viel zur Treiberprogrammierung mit Delphi.