Bonjour à tous.

J'ai un code qui me parait fonctionnel mais une erreur survient lors de la compilation (d'où le titre du post).

Voici mon code.

Fichier Classes.h :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#ifndef CLASSES_H_DEF
#define CLASSES_H_DEF
 
#include "Librairies.h"
 
struct  TileProp
{
	SDL_Rect R;
	int plein;
};
 
struct Map
{
	int LARGEUR_TILE, HAUTEUR_TILE;
	int nbtilesX, nbtilesY;
	SDL_Surface *tileset;
	TileProp props;
	std::vector<std::vector<int>> tableMap;
	int nbtiles_largeur_monde, nbtiles_hauteur_monde;
};
 
#endif
Fichier Librairies.h :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
#ifndef LIBRAIRIE_H_DEF
#define LIBRAIRIE_H_DEF
 
#include <string>
#include <vector>
#include <fstream>
#include <sstream> 
#include <iostream>
#include "Classes.h"
#include <SDL2/SDL.h> 
 
#endif
Et enfin mon fichier main.cpp :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
#include "Librairies.h"
 
void LectureFichierMap(std::string &tilset, Map &map, int &x, int &y)
{
	std::string text;
	std::stringstream bufferFichierMap;
	std::ifstream file("fichier.txt");
 
	bufferFichierMap << file.rdbuf();
	file.close();
 
	while (text != "#tileset\r")
	{
		std::getline(bufferFichierMap, text);
	};
 
	std::getline(bufferFichierMap, tilset);
 
	while (text != "#level\r")
	{
		std::getline(bufferFichierMap, text);
	};
 
	bufferFichierMap >> x >> y;
 
	for (int a(0); a < y; a++)
	{
		map.tableMap.push_back(std::vector<int>(x));
 
		for (int b(0); b < x; b++)
		{
			bufferFichierMap >> map.tableMap[a][b];
		}
	}
 
	bufferFichierMap.clear();
 
}
 
void Afficher(SDL_Renderer* pRender, SDL_Texture* pTexture, std::vector<std::vector<int>>& tableau, int &x, int &y)
{
	int i, j;
	SDL_Rect Rect_dest;
	Rect_dest.w = 16;
	Rect_dest.h = 16;
 
	SDL_Rect Rect_source;
	Rect_source.w = 16;
	Rect_source.h = 16;
 
	for (i = 0; i < x; i++)
	{
		for (j = 0; j < y; j++)
		{
			Rect_dest.x = i*16;
			Rect_dest.y = j*16;
			Rect_source.x = (tableau[j][i] % 13)*16;
			Rect_source.y = (tableau[j][i] / 13)*16;
			SDL_RenderCopy(pRender, pTexture, &Rect_source, &Rect_dest );
		}
	}	
	SDL_RenderPresent(pRender);
}
 
int main(int argc, char** argv)
{
	Map map;
	int x(0), y(0);
	SDL_Window* screen;
	SDL_Surface *tileset;
	SDL_Texture *pTexture;
	SDL_Event event;
	SDL_Renderer* pRender;
	std::string tilset;
 
	LectureFichierMap(tilset, map, x, y);
 
	SDL_Init(SDL_INIT_VIDEO);        // prepare SDL 
 
	screen = SDL_CreateWindow("Map Mario", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED,x*16,y*16, SDL_WINDOW_SHOWN);//
 
	pRender = SDL_CreateRenderer(screen, -1, SDL_RENDERER_PRESENTVSYNC);//
	tilset.pop_back();
	tileset = SDL_LoadBMP(tilset.c_str());
	pTexture = SDL_CreateTextureFromSurface(pRender,tileset);
 
	if (!tileset)
	{
		std::cout << "Echec de chargement tileset1.bmp" << std::endl;
		SDL_Quit();
		system("pause");
		exit(-1);
	}
 
	Afficher(pRender, pTexture, map.tableMap, x, y);
 
	do  // attend qu'on appuie sur une touche. 
	{
		SDL_PollEvent(&event);
		SDL_Delay(100);
	} while (event.type != SDL_KEYDOWN);
 
	SDL_FreeSurface(tileset);
	SDL_Quit();
	return 0;
}
Ma liste d'erreur quant à elle est la suivante :

Erreur C2146 erreur de syntaxe*: absence de ';' avant l'identificateur 'R'. (Ligne 8 du fichier Classes.h)
Erreur C4430 spécificateur de type manquant - int est pris en compte par défaut. Remarque*: C++ ne prend pas en charge int par défaut. (Ligne 8 du fichier Classes.h)
Erreur C2143 erreur de syntaxe*: absence de ';' avant '*'. (Ligne 16 du fichier Classes.h)
Erreur C4430 spécificateur de type manquant - int est pris en compte par défaut. Remarque*: C++ ne prend pas en charge int par défaut. (Ligne 16 du fichier Classes.h)
J'ai beau le tourner dans tous les sens je ne vois pas ce qui génère ces erreurs...

Merci par avance pour votre aide.