Bonjour,

Je travaille avec Visual C++ 2008, sur un SDI avec un splitter partageant 2 vues : splitter4View(CFormView) et MyView(CView) avec comme 'vue principale' splitter4View.

Dans splitter4View, l'initialisation de GetDocument() se passe bien, mais pas pour MyView :

Dans CMyView.cpp, je mets :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
Csplitter4Doc* CMyView::GetDocument() const // la version non déboguée est en ligne
{
	ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(Csplitter4Doc)));
	return (Csplitter4Doc*)m_pDocument;
}
et dans CMyView.h :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
public:
	Csplitter4Doc* GetDocument() const;
Et le compilateur me dit :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
myview.cpp(233) : error C2556: 'Csplitter4Doc *CMyView::GetDocument(void) const'*: la fonction surchargée ne diffère que par le type de retour de 'int *CMyView::GetDocument(void) const'
myview.cpp(233) : error C2371: 'CMyView::GetDocument'*: redéfinition*; types de base différents
myview.h(11) : error C2143: erreur de syntaxe*: absence de ';' avant '*'
(la ligne 233 est la 2ème ligne de l'extrait du code .cpp
la ligne 11 est la 2ème de l'extrait de code .h)

Je ne vois absolument pas d'où vient cette fonction avec comme type de retour "int *" alors que Csplitter4Doc existe.

Je n'ai pas mis tout le code pour ne pas charger le sujet...

Si quelqu'un pourrait m'aider, je l'en remercie d'avance.

Christophe