Prozess zurückgegeben 255 (0xff) - code-Blöcke

Ich weiß nicht, wo mein problem ist. Ich habe versucht, den code zu kompilieren einmal und es funktionierte. Allerdings habe ich kopiert es in ein neues Projekt, um es zu ändern, nur die Farbe oder die Zeit zu warten, und es funktioniert einfach in das erste Programm.
Was ist falsch? Ich fühle mich wirklich frustriert.
Mit diesem code möchte ich die Grafik der Sinus-Funktion.
Hier ist mein code:

#include <stdio.h>
# include <SDL.h>
# include <math.h>
# define PI 3.141592
# define SCREEN_WIDTH 640
# define SCREEN_HEIGHT 480

int main(int argc, char **argv){

   int x,y;

   double fx,angulo;

//  Uint8* posicion;

   Uint32 color;

   SDL_Window*win = SDL_CreateWindow("y=sin(x)", 100,100, 640, 480, 0);


//  SDL_ShowSimpleMessageBox(SDL_MESSAGEBOX_INFORMATION,"info", "Window      creada",win);

   SDL_Renderer*ren = SDL_CreateRenderer(win, -1,   SDL_RENDERER_ACCELERATED    |     SDL_RENDERER_PRESENTVSYNC);

  /* Create surface */

  SDL_Surface*surface =   SDL_CreateRGBSurface(0,SCREEN_WIDTH,SCREEN_HEIGHT,0,32,0,0,0);


  //get the pixels

  Uint32*pixels = (Uint32*)surface-> pixels;


  /* Lock the surface */

  SDL_LockSurface(surface);


   color = SDL_MapRGB(surface-> format, 255, 0, 0);

   for(x=0;x<360;x++){

      angulo=x*PI/180;

      fx=240+50*sin(angulo);

      y=round(fx);

       pixels[ ( y* surface-> w ) + x ] = color;

     }

    /* Unlock the surface */

    SDL_UnlockSurface(surface);


    //imprescindible

   SDL_Texture *tex = SDL_CreateTextureFromSurface(ren, surface);

   SDL_RenderCopy(ren,tex,NULL,NULL);

   SDL_RenderPresent(ren);

   SDL_Delay(1000);

  return 0;

}   
  • Also, was genau nicht funktioniert?
  • Die IDE version benutzt du und auf welcher Plattform und Architekten ist Ihre Maschine?
  • Code::blocks 13.12
  • es erscheint einfach "code.exe aufgehört zu arbeiten" und dann auf "Prozess zurückgegeben 255 (0xff) - code-Blöcke"
  • Der code enthält keine überprüfung, um zu sehen, wenn diese Funktionen Fehler zurück. Sie können nicht einfach annehmen, dass die Dinge funktionieren-Sie prüfen die Rückgabewerte der Funktionen, die Sie aufrufen. Zum Beispiel, hier ist die SDL_CreateWindow Dokumentation. Lesen Sie bitte, was der Rückgabewert bedeutet und wie man weitere Fehler-Informationen: wiki.libsdl.org/SDL_CreateWindow
  • Ich arbeite in win7 64bit und arbeite ich in VS2013. Ich habe meine Lösung für die entsprechende "include" - Verzeichnisse für include-Dateien und statische libs, die ich auch kopiert die dll-Datei in meinem Projekte-Verzeichnis, wo die ausführbare Datei generiert wird. Ich bin in der Lage, erfolgreich zu kompilieren und zu bauen, aber wenn ich diese ausführe. Ich bin immer ein crash auf dieser code-Zeile: Uint32 Pixel = (Uint32*)Oberfläche->Pixel, bekomme ich eine unbehandelte Ausnahme eine Zugriffsverletzung. Und in meinem debugger den Zeiger an die Oberfläche ist NULL oder leer!!! Wenn ich trat durch SDL_CreateRGBSurface(...) ist null zurückgeben!
  • Verwenden Sie den debugger, um zu sehen, welche Zeile das problem passiert auf der

InformationsquelleAutor María MR | 2015-04-28
Schreibe einen Kommentar