Bonjour,
Voici un bug sur MSVC

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
#include "stdafx.h"
 
class TESSAI
{
public:
	void printer();
};
 
class TESSAI2 : public TESSAI
{
public:
	bool b;
	virtual void printer();
};
 
void TESSAI::printer()
{
	printf("Premier objet\n");
}
 
void TESSAI2::printer()
{
	printf("Dérivé\n");
	TESSAI::printer();
}
 
typedef TESSAI* PESSAI;
typedef TESSAI2* PESSAI2;
 
void callprinter(PESSAI ess)
{
	ess->printer();
}
 
int _tmain(int argc, _TCHAR* argv[])
{
	PESSAI2 ess2;
	ess2=new TESSAI2;	
	callprinter(ess2);
	TCHAR tmp[128];
	scanf("%s",tmp);
	return 0;
}
Il doit m'afficher
Dérivé\n
et
Premier objet\n
car je lui passe un classe TESSAI2 "callprinter(ess2) qui est PESSAI2

Je passe la valeur ess2 qui est PESSAI2 ET NON PESSAI ;
et il m'affiche seulelemtn "Premier Objet"
Visual Studio ne prend pas en charge les dérivations d'objet !
donc cst buggé !


La solution serait de
void callprinter(PESSAI2 ess) ; evidemment ,
mais je refuse cet solution , car je vais developper un logiciel avec des
interface IHM dérivé sur une seule objet comme fait le MFC ;
Explication d'exemple
Sur un objet il y a un événement WM_PAINT appeler , le logiciel va rechercer l'objet grace au tag et identificateur d'objet et appelé la fonction
OnPaint de l'objet.
Solutuin Utiliser MFC , mais je refuse je fonctionne comme ça pour mon future logiciel IHM

Donc comment je fais ?

Merci bcp