Hallo,
ich würde gernne den P-Port des PC über C++ ansprechen. Ich hab im berets einige Anleitungen mit der Inpout32.dll gefunden, komm damit aber nicht klar.
Der Befehl „inportb()“ funktioniert weiterhin nicht.
Das Betriebssystem ist Win 2000.
Hallo,
ich würde gernne den P-Port des PC über C++ ansprechen. Ich hab im berets einige Anleitungen mit der Inpout32.dll gefunden, komm damit aber nicht klar.
Der Befehl „inportb()“ funktioniert weiterhin nicht.
Das Betriebssystem ist Win 2000.
Hallo Fragewurm,
ich würde gernne den P-Port des PC über C++ ansprechen. Ich
hab im berets einige Anleitungen mit der Inpout32.dll
gefunden, komm damit aber nicht klar.Der Befehl „inportb()“ funktioniert weiterhin nicht.
Und was geht nicht ??
Verwendest du die überhaupt richtigen I/O-Adressen ??
Ist das Port anderweitig schon belegt ??
Das Betriebssystem ist Win 2000.
MfG Peter(TOO)
Inpout32.dll
wo haste die denn her?
von http://www.logix4u.net/ ?
denn da sind etliche beispiele dabei, wie man den port anspricht! an der könnte man ja erstmal entlanghangeln!
grüßle
Geisterkarle
Ja ich benutze die richtige Adresse. Immerhin wird die dem P-Port zugewiesen und kann von nichts anderem belegt werden.
Das Problem ist, dass der Compiler die Befehel inp32, out32, oder _inp etc. , gibts ja anscheinden ein paar von der Sorte, nicht erkennt.
Hallo,
einen Befehl wie inp32 darf es in einem PC-Programm nicht geben, weil die im User-Modus verboten sind, die CPU würde sie nicht ausführen. Erlaubt sind I/O-Befehle nur innerhalb von Windows-Treibern.
Möglicherweise kann man die Befehle zur Entwicklung von Windows-Treibern mit einer Option freischalten, aber das wird dir nichts nützen - du willst ja offensichtlich keinen Treiber programmieren.
Gruss Reinhard
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Hallo Fragewurm,
Ja ich benutze die richtige Adresse. Immerhin wird die dem
P-Port zugewiesen und kann von nichts anderem belegt werden.
Ein installierter Druckertreiber belegt so ein Port.
Desweiteren gibt es für das P-Port 4 unterschiedliche genormte, und unzählige nicht genormte, Adressen, welche dann über eine Tabelle LPT1: … LPTx: zugeordnet werden.
Die genormten Adressen sind noch aus der Zeit als Port-Adressen per Mäuseklavier auf den Karten eingestellt wurden. Seit PnP verwendet wird, ist die Adresszuweisung im theoretisch völlig frei. Praktisch werden die zuweisbaren Adressen in einer Tabelle im PnP-Mechanismus auf der Karte festgelegt.
Selbst die Adressen welche das BIOS beim Start anzeigt sind nur vorläufig. Windows kann je nach Bedarf die Adressen danach noch ändern.
Welche Adresse auf deinem PC z.B. LPT1: zugeordnet ist, weiss nur dein PC. Das war übrigens bei IBM-PC schon immer so.
Zu DOS-Zeiten gab es Tools mit denen man die Zuordnung zwischen COMx: und LPTx: zu den Kartenadressen frei einstellen konnte. So ein Tool habe ich damals mal selber geschrieben, da ich eine COM-Karte hatte, welche vom BIOS nicht erkannt wurde.
Das Problem ist, dass der Compiler die Befehel inp32, out32,
oder _inp etc. , gibts ja anscheinden ein paar von der Sorte,
nicht erkennt.
Die 32-Bit Befehle sind sowieso für das P-Port die falschen
Wie dir schon geschrieben wurde, sind diese befehle in normalen Applikationen gar nicht erlaubt und somit bei den meisten Compilern gar nicht vorhanden. Zudem sind diese Befehle kein Bestandteil von C.
Du musst die Aufrufe deiner „Inpout32.dll“ dazu verwenden.
MfG Peter(TOO)
Ich habe zum Glück ein fertiges Prgramm gefunden mit dem ich den P-Port steuern kann, über die Adresse 0x378.
Trozdem danke für die Antworten.