Error C2274



  • Also langsam hab ichs satt ... 😉

    #ifndef C_SPRITE
    #define C_SPRITE
    
    #define VP_PARALLEL_UPRIGHT		0
    #define FACING_UPRIGHT			1
    #define VP_PARALLEL				2
    #define ORIENTED				3
    #define VP_PARALLEL_ORIENTED	4
    
    #define NORMAL					0
    #define ADDITIVE				1
    #define INDEXALPHA				2
    #define ALPHATEST				3
    
    #define SINGLEFRAME				0
    #define GROUPFRAME				1
    
    #ifndef MAX_PATH
    #define MAX_PATH 4000
    #endif
    
    class c_sprite
    {
    private:
    
    	struct d_sprite
    	{
    		struct d_spriteHeader {
    			unsigned char	ident[4];			// Enthält die Zeichenfolge 'IDSP'.
    			int				version;			// Enthält die Versionsnummer des Spriteformats. 1 = Quake, 2 = Half-Life.
    			int				type;				// Enthält die Orientierung (Fixierungstyp) des Sprites.
    			int				texFormat;			// Enthält das Renderformat des Sprites.
    			float			boundingRadius;		// Enthält den Radius des Sprites.
    			int				width;				// Enthält die Breite des Sprites in Pixel.
    			int				height;				// Enthält die Höhe des Sprites in Pixel.
    			int				numFrames;			// Enthält die Anzahl der Frames, die das Sprite gespeichert hat.
    			float			beamLength;			// Enthält die Beamlänge des Sprites. Die Beamlänge definiert eine Verschiebung der Ursprungskoordinaten des Sprites.
    			int				syncType;			// Enthält die Synchronisierung des Sprites. Die Synchronisierung legt fest, ob ein Sprite synchron oder zufällig durch seine Framesgruppen geht. 0 = Synchron, 1 = Zufällig.
    		};
    
    		d_spriteHeader header;
    
    		struct d_spritePalette {
    			struct RGB_Item {
    				unsigned char	colR;			// Enthält den Rotwert des Farbeintrags [x].
    				unsigned char	colG;			// Enthält den Grünwert des Farbeintrags [x].
    				unsigned char	colB;			// Enthält den Blauwert des Farbeintrags [x].
    			};
    			short			colCounter;			// Enthält die Farbanzahl des Sprites. Hat eigentlich immer den Wert 256.
    			RGB_Item		*p_colItem;			// Enthält die Farbdaten im RGB Datenformat.		
    		};
    
    		d_spritePalette palette;
    
    		struct d_frame {
    			long			frameType;			// Enthält die Typsignatur des Frames. 0 = Singleframe, 1 = Groupframe.
    			long			numIntervall;		// Enthält einen Integerwert mit der Anzahl der auszulesenden Groupframes.
    			float			*p_intervall;		// Enthält einen Floatwert, welcher die Anzeigesequenz des Groupframes bestimmt.
    			long			originX;			// Enthält einen Integerwert mit der Koordinate des Ursprungs auf der X-Achse.
    			long			originY;			// Enthält einen Integerwert mit der Koordinate des Ursprungs auf der Y-Achse.
    			long			width;				// Enthält die Breite des Frames in Pixel ausgelesen. Kann von der Breitenangabe des Headers abweichen.
    			long			height;				// Enthält die Höhe des Frames in Pixel ausgelesen. Kann von der Höhenangabe des Headers abweichen.
    			unsigned char	*p_frameData;		// Enthält die Bytedaten des Frames. Ein Eintrag entspricht einem Pixel. Der Wert ist der Index einer Farbe in der Farbpalette( spritePalette ).
    		};
    
    		d_frame *frame;
    	};
    
    public:
    
    	d_sprite spriteData;						// Hier werden die Spritedaten reingeladen.
    
    	int loadSprite ( char filePath[MAX_PATH] );
    	int saveSprite ( char filePath[MAX_PATH] );
    };
    
    #endif
    

    Wie kann man denn

    fread ( &spriteData.header , sizeof ( spriteData.d_spriteHeader ), 1, p_spriteFile );
    

    sowas einlesen ohne

    Kompiler schrieb:

    error C2274: 'function-style cast' : Unzulaessig auf der rechten Seite des Operators '.'

    zu bekommen ?



  • Was soll das denn sein?

    spriteData.d_spriteHeader
    

    Soll das nicht eher

    spriteData.header
    

    heissen?



  • Ähmm kann sein. 😃
    Habs inzwischen selbst rausgefunden

    fread ( &spriteData.header, sizeof ( c_sprite::d_sprite::d_spriteHeader ), 1, p_spriteFile );
    

Anmelden zum Antworten