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

xCite

Frischling

  • »xCite« ist der Autor dieses Themas

Beiträge: 77

Wohnort: Deutschland

Beruf: Berufsfachschüler

  • Private Nachricht senden

1

13.10.2007, 21:44

Konsolen Fenstergröße ändern -> Fehlercode 87

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
void Console::SetWindowSize (SHORT x, SHORT y)
{
    SMALL_RECT WindowSize = {0, 0, x, y};
    COORD BufferSize = {x+1, y+1};

    RefreshCSBI ();

    if (csbi.dwSize.X * csbi.dwSize.Y < x * y)
    {
        if (SetConsoleScreenBufferSize (Output, BufferSize) == FALSE)
            Error ("Could not set buffer size!");

        if (SetConsoleWindowInfo (Output, TRUE, &WindowSize) == FALSE)
            Error ("Could not set window size!");
    }
    else if (csbi.dwSize.X * csbi.dwSize.Y > x * y)
    {
        if (SetConsoleWindowInfo (Output, TRUE, &WindowSize) == FALSE)
            Error ("Could not set window size!");

        if (SetConsoleScreenBufferSize (Output, BufferSize) == FALSE)
            Error ("Could not set buffer size!");
    }
}


Egal was ich mache, SetConsoleWindowInfo schlägt immer fehl und beendet mit dem Fehlercode 87. Habe versucht zu vergrößern und zu verkleinern oder x zu vergrößern und y zu verkleinern oder umgekehrt. Alles läuft aufs gleiche hinaus. Sehr merkwürdiger Fehler, hoffe ihr könnt da helfen.

P.S.: Das Tutorial ist ansonsten komplett überarbeitet, fehlt nur noch diese eine Funktion. ;)
[01.10.2007 - 19:36:05] babelfish: weiss jemand einen Algo um witzige Sprüche zu erkennen? will das einbauen xD
[01.10.2007 - 19:36:07] |bubble|: War diese Frage ernst gemeint?!?

(Insider!) xD

P.S.: goto ruleZ! :D

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

2

13.10.2007, 21:55

Zitat von »"msdn2"«


The function fails if the specified window rectangle extends beyond the boundaries of the console screen buffer. This means that the Top and Left members of the lpConsoleWindow rectangle (or the calculated top and left coordinates, if bAbsolute is FALSE) cannot be less than zero. Similarly, the Bottom and Right members (or the calculated bottom and right coordinates) cannot be greater than (screen buffer height – 1) and (screen buffer width – 1), respectively. The function also fails if the Right member (or calculated right coordinate) is less than or equal to the Left member (or calculated left coordinate) or if the Bottom member (or calculated bottom coordinate) is less than or equal to the Top member (or calculated top coordinate).
@D13_Dreinig

SirForce

Alter Hase

Beiträge: 802

Wohnort: Süddeutschland

  • Private Nachricht senden

3

13.10.2007, 22:00

Die msdn gibt es doch auch auf deutsch, warum schaut ihr euch das zeug immer auf englisch an?!
Nichts behindert so sehr die Entwicklung der Intelligenz wie ihre vollständige Abwesenheit.

Michail Genin

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

4

13.10.2007, 22:02

Zitat von »"SirForce"«

Die msdn gibt es doch auch auf deutsch, warum schaut ihr euch das zeug immer auf englisch an?!


Weil die Erfahrung zeigt das die englischen Orginaltexte meißt besser sind als deutsche Übersetzungen.
@D13_Dreinig

xCite

Frischling

  • »xCite« ist der Autor dieses Themas

Beiträge: 77

Wohnort: Deutschland

Beruf: Berufsfachschüler

  • Private Nachricht senden

5

13.10.2007, 22:20

Ähm ich wüsste nicht, wo meine Funktion gegen die Regeln verstößt...

Sagen wir mal x = 90 und y = 90:

Zitat

The function fails if the specified window rectangle extends beyond the boundaries of the console screen buffer.


C-/C++-Quelltext

1
COORD BufferSize = {x+1, y+1}; 


Zitat

This means that the Top and Left members of the lpConsoleWindow rectangle cannot be less than zero.


C-/C++-Quelltext

1
SMALL_RECT WindowSize = {0, 0, x, y}; 


Zitat

Similarly, the Bottom and Right members cannot be greater than (screen buffer height – 1) and (screen buffer width – 1), respectively.


C-/C++-Quelltext

1
2
SMALL_RECT WindowSize = {0, 0, x, y};
COORD BufferSize = {x+1, y+1}; 


Zitat

The function also fails if the Right member is less than or equal to the Left member or if the Bottom member is less than or equal to the Top member.


C-/C++-Quelltext

1
SMALL_RECT WindowSize = {0, 0, x, y};



[edit]Bei z.B. x = 60 und y = 30 funktioniert alles, bei x = 120 und y = 60 wiederum nicht...[/edit]
[01.10.2007 - 19:36:05] babelfish: weiss jemand einen Algo um witzige Sprüche zu erkennen? will das einbauen xD
[01.10.2007 - 19:36:07] |bubble|: War diese Frage ernst gemeint?!?

(Insider!) xD

P.S.: goto ruleZ! :D

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

6

13.10.2007, 22:22

Zitat von »"xCite"«

Ähm ich wüsste nicht, wo meine Funktion gegen die Regeln verstößt...


Ähm... Du hast nichts von Beispielwerten gesagt?!
Hast du geprüft ob die angegebene Dimension die maximale Größe überschreitet? 90, 90 erscheint mir etwas groß!
@D13_Dreinig

xCite

Frischling

  • »xCite« ist der Autor dieses Themas

Beiträge: 77

Wohnort: Deutschland

Beruf: Berufsfachschüler

  • Private Nachricht senden

7

13.10.2007, 22:26

Ah danke, seh grad, x geht nicht über 80, y dafür locker über 400. Trotzdem Merkwürdig, wenn x = 80 ist, dann belegt das gerade mal ein Viertel meines Screens.

[edit]GetLargestConsoleWindowSize liefert x = 160 und y = 77 zurück. Langsam bin ich echt verwirrt.[/edit]
[01.10.2007 - 19:36:05] babelfish: weiss jemand einen Algo um witzige Sprüche zu erkennen? will das einbauen xD
[01.10.2007 - 19:36:07] |bubble|: War diese Frage ernst gemeint?!?

(Insider!) xD

P.S.: goto ruleZ! :D

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

8

13.10.2007, 22:34

Wenn GetLargestConsoleWindowSize 160, 77 liefert dann funktioniert das auch...
@D13_Dreinig

xCite

Frischling

  • »xCite« ist der Autor dieses Themas

Beiträge: 77

Wohnort: Deutschland

Beruf: Berufsfachschüler

  • Private Nachricht senden

9

13.10.2007, 22:40

160, 77 funktioniert nicht, hat ich gleich danach getestet...
[01.10.2007 - 19:36:05] babelfish: weiss jemand einen Algo um witzige Sprüche zu erkennen? will das einbauen xD
[01.10.2007 - 19:36:07] |bubble|: War diese Frage ernst gemeint?!?

(Insider!) xD

P.S.: goto ruleZ! :D

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

10

13.10.2007, 22:42

Zitat von »"xCite"«

160, 77 funktioniert nicht, hat ich gleich danach getestet...


Hast du darauf geachtet dein WindowSize auf {0,0,159,76} zu setzen?
@D13_Dreinig

Werbeanzeige