DDraw-Surface in ner Methode returnen: Ich krieg die Krise



  • Folgendes Problem:
    1. Ich erstelle eine FUNKTION, die eine DirectDraw-
    Oberfläche zurückgibt:

    LPDIRECTDRAWSURFACE4 ReturnSurf(void) {
      LPDIRECTDRAWSURFACE4 lpDDSurface;
      return lpDDSurface;}
    

    Das klappt.

    2. Ich erstelle das selbe METHODE einer Klasse:

    class MyClass {
      public:
       ...
       LPDIRECTDRAWSURFACE4 ReturnSurf(void);
       ...};
     //-------------------------------------------
     MyClass::ReturnSurf(void){
      LPDIRECTDRAWSURFACE4 lpDDSurface;
      return lpDDSurface;}
    

    Das klappt NICHT:
    "error C2040: 'ReturnSurf' : 'int (void)'
    unterscheidet sich von 'struct'
    IDirectDrawSurface4 *(void)' in bezug auf die
    Anzahl vorgenommener Dereferenzierungen"

    😡 😡 😡

    Kann mir da jemand helfen?



  • Wo steht denn der Returnwert bei der Methodendefinition? 🙄



  • Vielleicht mal so probieren 🙄

    //Klassendefinition s.o. 
    LPDIRECTDRAWSURFACE4 MyClass::ReturnSurf(void){
      LPDIRECTDRAWSURFACE4 lpDDSurface;
      return lpDDSurface;}
    


  • Also, man sollte auch bei Methoden wohl tatsächlich erst den Return-Typ (nenn ich's ma) vorher angeben 😃 .
    Danke und frohe Ostern 🤡 !


Anmelden zum Antworten