Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

TrommlBomml

Community-Fossil

  • »TrommlBomml« ist der Autor dieses Themas

Beiträge: 2 117

Wohnort: Berlin

Beruf: Software-Entwickler

  • Private Nachricht senden

1

06.04.2008, 16:59

Konsolenanwendung zeiger auf Puffer?

Ich wollt ma fragen ob einer von euch weiss wie man die adresse vom Konsolenpuffer bekommt, sodass man die möglichkeit hat direkt die ausgaben zu manipulieren.

2

06.04.2008, 17:50

hm, ich weiß das man z.b. cout und so umleiten kann. Das ist ziemlich cool, du setzt den stream von cout auf dein eigenes Objekt, welches den Originalstream von cout speichert und dadurch die Ausgabe bearbeiten kann bevor sie auf den Bildschirm kommt. Oder sie kommt nicht auf den Bildshcirm sondern in eine Datei. Oder in deine eigene Konsole. Oder alles gleichzeitig.
Lieber dumm fragen, als dumm bleiben!

TrommlBomml

Community-Fossil

  • »TrommlBomml« ist der Autor dieses Themas

Beiträge: 2 117

Wohnort: Berlin

Beruf: Software-Entwickler

  • Private Nachricht senden

3

06.04.2008, 18:00

das ist eigentlich nicht mein ziel. mit turbo pascal war der bildschirmpufffer immer bei [$B80:0] , und von da aus war dann abwechselnd ein byte das zeichen, das zweite das attribut. so konnte man sich eine sehr schnelle variante schreiben mit assembler, um zeichen auszugeben. dassselbe wollt ich mit der cpp-konsole machen, der aufbau sollte der gleiche sein, nur die adresse denke ich nicht :).

aber das mit dem umleiten is auch kuhl, bringt mir leider nix :(

4

06.04.2008, 18:46

Es gibt ja gar keine C++ Konsole.
Es gibt nur n paar Standardfunktionen, und was die machen kann isch auf jeder Plattform und wahrscheinlich auch bei jedem Compiler unterscheiden.
Ein direkter Zugriff auf eine Windowskonsole ist wohl anders als ein direkter Zugriff auf eine Linux konsole. So stelle ich mir das jedenfalls vor.

Vielleicht solltest du direkt nach deiner Plattform suchen (es gibt ja schon n paar Tuts, wie man unter Windows z.B: bunte Zeichen hinbekommen kann).

Aber: Wieso willst du eine schnellere Textausgabe mit ASM machen? Ich meine, ne Konsole benutzt man mal so wenn man grad faul ist oder so, aber wenn du deine eigene, angepasste Ausgabeoberfläche hast, kannst du dir die doch auch selbst schreiben.
Lieber dumm fragen, als dumm bleiben!

TrommlBomml

Community-Fossil

  • »TrommlBomml« ist der Autor dieses Themas

Beiträge: 2 117

Wohnort: Berlin

Beruf: Software-Entwickler

  • Private Nachricht senden

5

06.04.2008, 18:53

Zitat von »"Jonathan_Klein"«

Es gibt ja gar keine C++ Konsole.
Es gibt nur n paar Standardfunktionen, und was die machen kann isch auf jeder Plattform und wahrscheinlich auch bei jedem Compiler unterscheiden.
Ein direkter Zugriff auf eine Windowskonsole ist wohl anders als ein direkter Zugriff auf eine Linux konsole. So stelle ich mir das jedenfalls vor.

Vielleicht solltest du direkt nach deiner Plattform suchen (es gibt ja schon n paar Tuts, wie man unter Windows z.B: bunte Zeichen hinbekommen kann).


stimmt^^, da is auch meine aussage nicht korrekt. kann das beim suchen ja mal mit einbeziehen.

Zitat von »"Jonathan_Klein"«

Aber: Wieso willst du eine schnellere Textausgabe mit ASM machen? Ich meine, ne Konsole benutzt man mal so wenn man grad faul ist oder so, aber wenn du deine eigene, angepasste Ausgabeoberfläche hast, kannst du dir die doch auch selbst schreiben.


is für das projekt tears of blood, wo wir nunmal die konsole nutzen, um ein ascii-rpg zu machen. und da gehen zurzeit 80x35 maps pro zeichen andere farbe und zeichen mit cout ziemlich lahm. schätze ma consolewrite is schneller, will mich aber vom cursor loslösen.

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

6

06.04.2008, 18:57

Du könntest die Consolelib der WinAPI verenden: http://msdn2.microsoft.com/en-us/library/ms682088(VS.85).aspx
@D13_Dreinig

TrommlBomml

Community-Fossil

  • »TrommlBomml« ist der Autor dieses Themas

Beiträge: 2 117

Wohnort: Berlin

Beruf: Software-Entwickler

  • Private Nachricht senden

7

06.04.2008, 19:32

also wäre es am schnellsten und auch sichersten zu lösen mit WriteConsole?

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

8

06.04.2008, 19:34

Zitat von »"TrommlBomml"«

also wäre es am schnellsten und auch sichersten zu lösen mit WriteConsole?


Vielleicht nicht am schnellsten, aber bestimmt am sichersten und trotzdem schnell.
@D13_Dreinig

TrommlBomml

Community-Fossil

  • »TrommlBomml« ist der Autor dieses Themas

Beiträge: 2 117

Wohnort: Berlin

Beruf: Software-Entwickler

  • Private Nachricht senden

9

06.04.2008, 19:43

k ich werd mich mal versuchen. gehe ich der annahme richtig, dass ich bei low-level output richtig bin?

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

10

06.04.2008, 20:38

Zitat von »"TrommlBomml"«

k ich werd mich mal versuchen. gehe ich der annahme richtig, dass ich bei low-level output richtig bin?


Jep, da solltest du richtig sein.
@D13_Dreinig

Werbeanzeige