Forum: PC-Programmierung pc.h


von Josef Unland (Gast)


Lesenswert?

Hallo,

wer kann mir sagen, wo ich den Header-File PC.H finde. In einem
C-Programm, welches ich mir vom Internet runtergeladen habe, wird
dieser Headerfile gebraucht. Ich arbeite mit TurboC 2.0 auf DOS Ebene.
Für eine schnelle Antwort wäre ich sehr dankbar.

Gruß
Josef

von Rufus T. Firefly (Gast)


Lesenswert?

Der Dateiname sagt mir nichts.
Was mäkelt der Compiler denn an, wenn Du die #include-Anweisung
auskommentierst?

So könnte man versuchen, herauszufinden, was in dieser ominösen Datei
definiert sein soll.

Du könntest auch Dein heruntergeladenes Programm hier posten oder aber
erwähnen, wo Du's her hast, auf daß ich mal nachsehen kann, was es
damit auf sich hat.

Du arbeitest tatsächlich mit Turbo-C 2.0? Das war der erste brauchbare
C-Compiler, mit dem ich es zu tun hatte ... lang ist's her (so knapp
15 Jahre).

von Thomas X. (Gast)


Lesenswert?

wenn ich mich recht erinnere, war pc.h ein header file von DJGPP's
library, so ähnlich wie bei turbo c/pascal dos.h bzw. die unit dos.

von Thomas X. (Gast)


Lesenswert?

achja, unter anderem sind in pc.h die inport/outport funktionen
deklariert, die wären dann bei turbo c in dos.h

von Josef Unland (Gast)


Lesenswert?

ja, lang ist es her. Ich habe damals etwas mit diesem Compiler
programmiert. Nun möchte gerne ein GLCD am LPT Port anschließen und
habe mir deshalb den Compiler wieder installiert. Das Programm
(dportlcd) habe ich mir von http://www.skippari.net/lcd/ks0108.html
runtergeladen und hier wird ein pc.h benutzt.

von Thomas X. (Gast)


Lesenswert?

die exes in dem archiv sind mit DJGPP kompiliert. also ersetz doch
einfach mal <pc.h> durch <dos.h>, und schau was dabei rauskommt.

von Josef Unland (Gast)


Lesenswert?

Hi Thomas,

dos.h wird aber auch aufgerufen, somit können in pc.h nicht die I/O
Routien stehen.

von Thomas X. (Gast)


Lesenswert?

DJGPP's runtime library hat auch ein dos.h, dort sind aber ganz andere
sachen drin. diese files sind nicht standardisiert, da kann irgendwas
drinstehen.

von Thomas X. (Gast)


Lesenswert?

dann entfern halt <pc.h> halt ganz einfach mal, so wie rufus schon
gesagt hat. möglicherweise treten dann nicht mal fehler auf, weil bei
turbo c eben die port funktionen in dos.h sind, bei DJGPP aber eben
nicht, und wenn ich den code so überfliege, geht es in erster linie um
die portfunktionen.

von Josef Unland (Gast)


Lesenswert?

das heist, dass ich dieses Programm ohne die Headerfiles zuändern, gar
nicht mit Turbo C compalieren kann?

von Josef Unland (Gast)


Lesenswert?

habe ich schon gemacht, dann kommen andere Fehlermeldungen.

von Thomas X. (Gast)


Lesenswert?

natürlich brauchst du die library header nicht zu ändern, aber das
programm das du kompilieren willst schon (.c und .h files).

von Thomas X. (Gast)


Lesenswert?

tja, dann musst du jetzt halt denen nachgehen, solange bis es kompiliert
(und dann ist noch nicht mal gesagt dass es funktioniert:)

wie gesagt, das programm ist scheinbar für DJGPP geschrieben, dessen
library dokumentation wird dir vielleicht weiterhelfen
(http://www.delorie.com/djgpp/doc/libc/)

von Rufus T. Firefly (Gast)


Lesenswert?

Das muss es nicht heissen.
Probiere es einfach aus - kommentiere das #include aus, so wie ich es
Dir bereits geraten habe, und sieh' Dir an, was der Compiler dazu
sagt.

Im übrigen sei darauf hingewiesen, daß so ein DOS-Programm nur unter
DOS auch funktionieren wird - unter den ernstgemeinten*
Windows-Versionen wird das Programm nicht funktionieren.
Das liegt daran, daß die Art des Hardwarezugriffs mit direkten
Port-I/O-Befehlen unter diesen Windowsversionen nicht zulässig ist.





*) NT, das schließt 2K und XP ein. Nicht dazu gehören 3.11 und der
ganze 95-Krampf wie auch Me.

von Josef Unland (Gast)


Lesenswert?

ja, ich werds mal versuchen. vielen dank für eure hilfe.

gruß
josef

von Thomas X. (Gast)


Lesenswert?

probier sonst noch, in jedem file, welches die folgenden zeilen enthält,
diese zu entfernen:

#define outport outportb
#define inport  inportb

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.