Bonjour à tous ceux qui m'aideront ou auront essayé de le faire, ainsi qu'à toute la communauté !

Je ne tourne pas autour du pot et vous explique de suite mon problème.
Je dois développer un jeu en C++ pour un projet à l'école, mais je bloque sur un soucis qui, je pense, vient de mes déclarations de fonctions, de l'initialisation de mes variables et de l'utilisation des deuxièmes en tant que paramètres des premières. Pour info je travaille avec VisualC++ 2010 et suis sous Windows 7.

J'ai donc créé une classe AffichageManager qui lance tel ou tel affichage (accueil, menu, jeu...) selon la touche enfoncée, une classe EventManager qui "écoute" les touches appuyées et enfin une classe Fenetre qui est mère de PageAccueil et PageMenu.
Voici la façon dont j'ai pensé le développement du jeu :
D'abord je crée une fonction LancementAffichage() qui, après avoir instancié un objet de chaque classe, exécute la création de la fenêtre grâce au constructeur de la classe Fenetre.
Ensuite l'instance de Fenetre exécute l'affichage de l'accueil (LancementAccueil(PageAccueil pageAccueil)).
Enfin l'instance de EventManager attend que l'utilisateur appuie sur une touche pour effectuer telle ou telle action.

Mon problème se trouve au niveau de la construction des liens puisque j'ai un message d'erreur LNK2019 me signalant"unresolved external symbol "public: void __thiscall EventManager::KeyEvent(class PageAccueil,class PageMenu,class AudioManager)" (?KeyEvent@EventManager@@QAEXVPageAccueil@@VPageMenu@@VAudioManager@@@Z) referenced in function "public: void __thiscall AffichageManager::LancementAffichage(void)" (?LancementAffichage@AffichageManager@@QAEXXZ)

Voici le code de AffichageManager et EventManager, là où je pense se situe l'erreur, mais peut-être je me trompe...
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
#include "StdAfx.h"
#include "AffichageManager.h"
#include "Fenetre.h"
#include "PageAccueil.h"
#include "PageMenu.h"
#include "EventManager.h"
#include "AudioManager.h"
 
 
AffichageManager::AffichageManager(void)
{
}
 
 
AffichageManager::~AffichageManager(void)
{
}
 
 
 
 
 
void AffichageManager::LancementAffichage()
{
	Fenetre *f = new Fenetre(800, 600, 32, SDL_HWSURFACE);
	AudioManager aM = AudioManager();
 
	PageAccueil pA = PageAccueil();
	PageMenu pM = PageMenu();
	EventManager *eM = new EventManager();
 
	f->LancementAccueil(pA);
	aM.PlayMusic("menu");
	eM->KeyEvent(pA, pM, aM);
}
EventManager :
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
#include "StdAfx.h"
#include "EventManager.h"
 
 
EventManager::EventManager(void)
{
}
 
 
EventManager::~EventManager(void)
{
}
 
 
 
 
 
void KeyEvent(PageAccueil pageAccueil, PageMenu pageMenu, AudioManager audioManager)
{
	int continuer = 1;
	SDL_Event evenement;
 
	while (continuer)
	{
		// On attend un évènement clavier et on switch selon la touche pressée
		SDL_WaitEvent(&evenement);
		switch(evenement.type)
		{
			case SDL_QUIT:
				continuer = 0;
				break;
 
			case SDL_KEYDOWN:
				switch(evenement.key.keysym.sym)
				{
					case SDLK_a:
						continuer = 0;
						break;
					case SDLK_s:
						audioManager.PauseSon();
						break;
					case SDLK_RETURN:
						pageAccueil.Affichage();
						break;
					case SDLK_ESCAPE:
						pageMenu.Affichage();
						break;
				}
				break;
		}
	}
}
Je ne mets pas les ".h" car les fonctions sont déclarées comme indiquées lors de leur définitions.


Merci beaucoup pour toute l'aide que vous pourrez m'apporter,

Paicito


PS: post replacé car initialement mis dans la mauvaise rubrique du site...