Was ist Prozedureinsprungpunkt

3 Antworten

Ein Programm auf einem Windows – PC besteht in der Regel aus vielen Elementen. Teile des Programms können sozusagen ausgelagert sein: in sogenannten Bibliotheken, die wiederum vielen weiteren Programmen zu Verfügung stehen. Diese Bibliotheken haben (meistens) die Dateiendung .dll. Nun kann es vorkommen, dass ein Programm während seiner Installation eine andere Version einer solchen DLL auf den Rechner schreibt. Dies kann (muss aber nicht) zur Folge haben, dass anderer Programme, welche diese DLL auch brauchen, auf einmal nicht mehr funktionieren, weil dort eine für sie notwendige Prozedur (ein Programmstück) fehlt. Und genau dies ist auf Deinem Rechner passiert. Dies kann auch auf allen Windows – Betriebssystemen passieren; also nicht nur WIN98. Suche mal auf Deinem Rechner nach weiteren DLLs mit gleichem Namen und kopiere sie testweise in das Verzeichnis, aus dem Du Dein Programm aus startest. Sollte sich dort schon eine solche DLL gleichen Namens befinden, dann mache vorher eine Sicherheitskopie von ihr. Mit einer Suchmaschinen-Suche wirst Du vielleicht auch fündig, solltest Du keine weitere DLL auf Deinem Rechner finden.

Windows requiriert für sich, zum ersten Mal mit dem sog. API-Aufbau der Programme (Advanced Program Interface) aufzuwarten. Das bedeutet, daß jede Programm-exe mit einer oder mehreren Programm-Bibliotheksdateien, den "DLLs" (DownLoadLibrary) korrespondiert.

Der Grund: Man wollte beim Konstruieren von Peripheriegeräten unterschiedlichster Hersteller eine Kompatibilität herstellen, ohne daß der gesamte Programmcode der Windows-Exe-Dateien preisgegeben wird. Man verwendet dann Teile von exe Dateien, die zum jeweiligen Gerät passen müssen und aber auch gleichzeitig mit den Windows- EXE-Dateien korrespondieren.

Im Klartext bedeutet dies, daß früher sogar physisch EXE und DLLs hintereinander auf der Platte angeordnet sein mußten des reibungslosen Ablaufes wegen. Jede EXE hat nun Programmlücken, bzw. Einsprungadressen, wo die DLL andockt, sozusagen. Nur so ist es möglich, daß nicht für jedes Druckermodell eine neue Windows-Drucker-EXE nötig wird und das ältere Modell einfach deinstalliert werden kann, wobei das Betriebssystem integer bleibt.

Das findet sich übrigens schon bei ganz alten XT-Rechnern, die kein BIOS hatten. Hier mußte beim Booten manuell die Harddisk-Einsprungadresse für die Kerneldateien des DOS im Speicheradressenformat eingegeben werden, damit die HDD überhaupt vom DOS erkannt wurde. "...Then type debug and C:300 or continue with booting from Diskette..."

Nun zurück zur Fehlermeldung: Diese deutet darauf hin, daß Du falsche Treiber (DLLs) benutzt, bzw. das Betriebssystem schlicht und ergreifend hier eine Macke hat. Eventuell nach Datensicherung neu aufsetzen. Es kann aber dann immer noch eine Hardwareinkompatibilität vorliegen. Aber hier wird es schon komplizierter und Ferndiagnosen sind bekanntlich nicht so einfach möglich.


mattis  05.08.2007, 11:43

API heißt Application Programming Interface

0
mattis  05.08.2007, 11:37

weißt du, wovon du da redest? Mit einer HD- position, von der BIOS- Code gelesen werden kann haben DLLs (Dynamic Linked Libraries) !!NICHTS!! zu tun. Und da ist noch einiges haarsträubender Unsinn ..

0
AnonymerNutzer  05.08.2007, 13:31
@mattis

Das mit dem XT hat mit DLLs in der Tat nichts zu tun. Auch hatte mein alter XT mit sage und schreibe 8 MHZ CPU Takt und einer HDD von 5 Megabyte (!) noch garkein BIOS. Das kam erst später. Zu dem Zeitpunkt gab es Windows auch noch nicht. Sollte nur verdeutlichen, daß es "Einsprungadressen gibt", auf die gezielt zugegriffen werden kann. Dieser Passus ist zugegebenermaßen etwas weit ausgeholt.

0
AnonymerNutzer  04.08.2007, 19:49

Dieses Problem scheint nicht neu: Beim neu installierten Explorer trat das auf:

"...habe cablecom-assistent entfernt, dann war diese anzeige nicht mehr da...."

0

Hast du WIN 98 auf dem Teil? Wenn ja, dann schau mal hier: http://www.computerhilfen.de/hilfen-5-9648-0.html