Bildschirmausgabe ohne include-Anweisung!
-
Hallo, bin neu bei der C++ Programmierung und
möchte fragen, wie man eine Bildschirmausgabe ohne
die Verwendung einer Header-Datei erreicht.
Auf welche Weise kann man beispielsweise eine
weiße Linie in einer Visual Studio C++ 6.0 Konsolenanwendung
auf den Monitor ausgeben, nur indem man C++ Basisbefehle
gebraucht?
(Basisbefehle wie int,for,auto,long,class,if,...)
-
wow, bitte nenne vor allem "long" niemals einen befehl. (gilt natürlich auch für die andern von dir aufgeführten schlüsselwörter)
der header iostream gehört übrigens zum basis-pack von c++. also keine sorge, wenn du den verwenden musst.
-
Sorry, wenn ich da was durcheinander gebracht hab!
Aber irgendwie muss es da doch eine Möglichkeit geben!
Denn bei der Nutzung von iostream kann man nur die
Standard Funktionen nutzen, die von anderen
Programmierern geschrieben wurden und die für manche Zwecke
nun mal ungeeignet sind!
Iostream wurde doch auch mit c oder c++ geschrieben oder
etwa nicht?!Geht der Zugriff auf Geräte wie Monitor(Grafikkarte),USB oder
Soundkarte denn nur über Includes?Hoffe auf Antwort!
-
Awareness schrieb:
Geht der Zugriff auf Geräte wie Monitor(Grafikkarte),USB oder Soundkarte denn nur über Includes?
die includes deklarieren nur was. das kannste auch selber. aber in der tat geht der zugriff auf die hardware nur über aufrufe von betriebssystemfunktionen. also entweder in win welche aus der kernel32.dll oder in linux durch syscalls. letztere kriegste sogar ohne header mit inline-assembler hin. aber sie sind zum teil sowas von kompliziert, daß sie dir echt keine hilfe sind.
in der console-faq sind afair ein paar dateien, um mit cout und farbe was machen zu können. aber gescheiter wär's wohl, du würdes einfach auf die farbe verzichten.
mach statt
//farbe auf weiss setzen cout<<"--------------------------------------------------------------------";
einfach
cout<<"-weiser-strich---------weisser-strich------------weisser-strich-----";
-
Geht der Zugriff auf Geräte wie Monitor(Grafikkarte),USB oder
Soundkarte denn nur über Includes?Mit C++: ja. Es sei denn du benutst inline Assembler... Außerdem ist der zugriff auf Hardware für normale Programme (zumindest unter Windows) tabu.Das heißt du müsstest dir eigene Treiber schreiben. Aber auch hier kommst du nicht ohne Asm aus
. Wenn du keine treiber schreiben willst dann gibt es noch die Option ein eigenes OS zu schreiben (wieder=>assembler :D) oder das Programm für irgendein OS zu entwickeln welches den direkten Zugriff auf hardware erlaubt.
EDIT: ok, ich habe doch etwas länger zum Tippen gebraucht
, der Beitrag von volkard war noch nicht da... apropo @volkard: ich habe ihn so verstanden als ob er ein Programm komplett unabhängig von includes und libs und OS-APIs schreiben wollte (denn auch OS-Routinen, die durch die API zugägnlich sind, wurden ja von "anderen" Programmierern geschrieben
- aber nach dieser Logik müsste man auch erstmal sich einen Compiler schreiben).
-
Hm. Ohne includes wird ein Zugriff auf irgendwas ohne inline-assembler ziemlich schwierig...
Ansonsten halte ich es aber für ein Gerücht, dass man device drivers nur mit assembly schreiben kann. Ich kenn zwar die entsprechenden APIs unter Windows nicht, aber unter Linux ist es in den meisten Fällen wunderbar möglich, nen Treiber ohne ASM zu schreiben - insbesondere, wenn es, so wie hier, nur um eine Umgehung der OS-internen Schutzmaßnahmen geht. So sinnlos ein solches Unterfangen auch ist, ASM braucht man dazu, denke ich, nicht.
-
Awareness schrieb:
Iostream wurde doch auch mit c oder c++ geschrieben oder
etwa nicht?!Ja, aber mit unportablen Mitteln.