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

1

28.02.2010, 16:10

SDL, C++ & Eclipse

Wollte ein wenig in die SDL-Programmierung mit C++ und Wascana (Eclipse) einsteigen.

Nu hab ich mal ein paar SDL Tutorials gesucht und auch schon probiert, ua zB auch das hier https://www.spieleprogrammierer.de/phpBB2/viewtopic.php?t=7210&postdays=0&postorder=asc&start=15&sid=49a1d657bcd6361951fdbd17b72a6223

allerdings habe ich immer das PRoblem, das beim ausführen überhaupt nichts passiert. Ich mach ein neues C++ Projekt, kopier den Quellcode aus dem tuts rein, ermeldet auch keine Fehler oder Warnings, aber es passiert nix. Je nach Tut sollte ja irgendein Fenster aufgehen, wo irgendwelche Farben und Formen drinne sind.

Woran kann das liegen?

ps: wenn ich irgendwo in den Code ne cout-konsolenausgabe mit einbaue, seh ich die auch nicht...

idontknow

unregistriert

2

28.02.2010, 17:00

Schließt sich dein Fenster sofort?

Was sagt deine IDE, wenn du nen Build machst?

3

28.02.2010, 17:44

so, um es mal etwas konkreter zu machen, ich habe jetz diesen code:

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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#include <SDL/SDL.h>        // SDL-Header

#include <SDL/SDL_opengl.h> // Bindet plattformabhängig die richtigen Header ein 

#include <iostream>         // für Konsolenausgaben


using std::cout;    // Wir verwenden std::cout und

using std::endl;    // std::endl für die Konsolenausgaben


// Die main Funktion muss unter Windows unbedingt

// diese Form haben, da es ansonsten zu einem

// Linkerfehler kommen würde.

int main(int argc, char **argv)
{
  if( SDL_Init( SDL_INIT_VIDEO ) != 0 ) // Initialisieren des SDL Video Subsystems

  {
    cout << "Die SDL konnte nicht initalisiert werden (" << SDL_GetError() << ")" << endl;
    return 1;
  }

  cout << "Willkommen zum SDL Testprogramm." << endl;
  
  // Fenstertitel setzen:

  // Der erste Text steht in der Titelleiste des Fensters und der zweite in der Taskleiste.

  SDL_WM_SetCaption( "Tomprogs Game Tutorials - First Try", "Tomprogs - First Try" );

  // Doublebuffering aktivieren

  SDL_GL_SetAttribute( SDL_GL_DOUBLEBUFFER, 1 );
  
  // Ein OpenGL Fenster mit einer Auflösung von 800*600 Pixeln und

  // einer Farbtiefe von 32 Pixeln erzeugen.

  SDL_SetVideoMode( 800, 600, 32, SDL_OPENGL );
  
  
  // Enlosschleife

  while(true)
  {
    SDL_Event event; // Hier wird immer die neue Nachricht gespeichert


    while( SDL_PollEvent(&event) ) // Holen der nächsten Nachricht

    {
      // Bestimmen des Nachrichtentyps

      switch(event.type)
      {
        // Bei einer SDL_QUIT Nachricht sollte das Programm beendet werden.

        // Sie wird zb. verschickt wenn man auf das X beim Programmfenster

        // klickt.

        case SDL_QUIT:
          SDL_Quit(); // Herunterfahren der SDL

          exit(0);
          break;
        default:
          break;
      }
    }

    // Hierher kommt dann alles was das Spiel am Laufen hält...


  }


  SDL_Quit(); // Herunterfahren der SDL Bibliotheken

  return 0;
}


der ist von diesem tut hier, http://www.tomprogs.at/tutorials/spieleentwicklung/cpp-opengl-initialisieren-mit-sdl.xhtml




ich klicke auf run blabla.exe, und es passiert überhaupt nichts, lediglich unten bei console erscheint für den bruchteil einer sekunde der text "build of configuration debug for project blabla, internal builder is used for build, nothing to build for blabla"

(blabla = name des projektes)

4

28.02.2010, 22:42

Also der Code sollte wohl passen, zumindest habe ich ihn erfolgreich auf mehreren Betriebssystemen getestet :P

Wie hast du denn das Projekt erstellt bzw. was ist es für ein Projekt? Und startest du auch die richtige .exe? Dann sollte ja zumindest irgendein Text in der Konsole kommen.
Was passiert denn wenn du da Programm aus der Konsole und nicht aus Eclipse startest?
Tutorials zu OpenGL, Ubuntu und Programmieren allgemein: www.tomprogs.at

Forum und Wiki zum Programmieren lernen: proggen.org/forum.proggen.org

5

28.02.2010, 23:04

wenn ich die main() auf ein hello world cout reduziere, kommt ebenfalls nichts raus. erst wenn ich die include ssdl/sdl.h zeile lösche, kriege ich die hello world ausgabe. Wenn ich die Zeile wieder rein nehme, geht wieder nix mehr.

das projekt habe ich erstellt mit new -> c++-project ->executable -> hello world c++ project.
und dann schmeiss ich den hello world code eben raus und kopier den richtigen rein.

starten tu ich einfach über den kleinen grünen pfeil oben "run blabla.exe"

6

01.03.2010, 12:02

Zitat von »"Style_"«

erst wenn ich die include ssdl/sdl.h zeile lösche, kriege ich die hello world ausgabe.

Demnach wird wohl die SDL nicht ganz richtig eingerichtet sein. Bekommst du denn dabei überhaupt keinen Fehler, auch wenn du nur auf 'Build' klickst?

Ich weiß jetzt nicht wie Wascana die SDL einrichtet, aber vielleicht geht es ja mit '#include <SDL.h>'...
Tutorials zu OpenGL, Ubuntu und Programmieren allgemein: www.tomprogs.at

Forum und Wiki zum Programmieren lernen: proggen.org/forum.proggen.org

7

01.03.2010, 12:20

http://jeebone.je.funpic.de/screen1.JPG

so sieht das aus. ICh krieg wirklich überhaupt keinen Fehler. '#include <SDL.h>' klapptgarnicht, da ist der Pfad falsch.

8

01.03.2010, 14:30

Ich glaub dir fehlt dann wahrscheinlich die SDL.dll an der richtigen Stelle. Wenn du sie in den Debug Ordner kopierst und dann das Programm von dort startest, dann sollte es funktionieren.

Es könnte auch sein das deine Ausgabe in eine Datei stdout.txt umgeleitet wird...
Tutorials zu OpenGL, Ubuntu und Programmieren allgemein: www.tomprogs.at

Forum und Wiki zum Programmieren lernen: proggen.org/forum.proggen.org

9

01.03.2010, 15:09

ja, das sieht schonmal sehr gut aus. Wenn ich die exe aus dem projektordner starte, sagter genau das, was du auch sagst, das die .dll fehlt. hab se mal rein kopiertund jetztscheints zu funktionieren. Vielen dank

Werbeanzeige