Einzelnen Beitrag anzeigen

woki

Registriert seit: 29. Mär 2003
563 Beiträge
 
Delphi 2006 Architect
 
#6
  Alt 5. Apr 2003, 16:03
Zitat:
Programm läuft nur unter windows 98.
wie affig ist das denn, dass die delphi programierer so einen befehl nicht übernehmen?

Gar nicht.

Mit Delphi schreibt man Windows-Programme und unter Windows (wie jedem anderen ernstzunehmende Betriebssystem auch) sind direkte Hardwarezugriffe den Treibern vorbehalten.

DOS basierte Systeme (Win31, Win9x ...) lassen diesen Zugriff nur aus kompatibilitätsgründen zu alter Software zu, was ein Grund für die Instatbilität dieser Systeme ist.

Unter den NT-basierenden Windowsversionen führt die CPU einen Portzugriff gar nicht erst aus, du bekommst stattdessen eine Exception. Ein solcher Portzugriff wird nur einem Treiber gestattet. Wäre auch nicht gerade eine Ruhmesblatt für Delphi, wenn es eine schlecht programmierte Software zuläßt, die nur aufgrund von Unzulänglichkeiten von Win9x hier läuft, und die dann unter NT, 2000, XP sofort knallt. Und sobald die Unzulänglichkeiten von Win9x beseitigt sind, wird es dann gar nicht mehr laufen, und Du mußt das Problenm dann doch wieder sauber lösen.

Wer auf Hardware zugreift, möchte weit mehr als nur über Grundkenntnisse verfügen, bei Fehlern kann diese oder auch andere Hardware schnell zerstört sein. Du wärest nicht der erste, der sich ein neues Motherboard kaufen muß, weil er eine Zahl verwechselt hat.


Prinzipiell gibt es fertige Bibliotheken, z.B. auf Torry, mit denen man über einen Universaltreiber auf beliebige Portadressen zugreifen kann. Wie gesagt, damit kannst du dann auch genügend Mist bauen, von Abstürzen bis zur Zerstörung von Hardware. Falls hier, wie zu befürchten, jemand mit Assembler kommt, solche Zugriffe laufen nur unter Win9x, wo es eben noch keine saubere Trennung zwischen Treiber und Anwendungsebene gibt.

Gruß
Wolfgang
  Mit Zitat antworten Zitat