VS and MRef to forward declarations ?
Philippe Torrelli
philippe.torrelli at alcatel-lucent.fr
Fri Feb 2 09:40:15 CET 2007
Hello Athanasios,
I'm compiling for win32 with vs2005 pro edition.
The error codes I get are
C2027
C2227
C2680 ...
Depending on the part of the code that is compiled.
See below where I pasted an excerpt of the error I guet when compiling
MediaStream
I guess it has to do with the way template code is generated, or maybe with
the STL version of visual studio... Or that I missed something.
It's not a pre-processor error type 'include file not found' like you
suggest but a compilation error.
When I've finished adding the includes, I'll do a svn diff and send you the
results.
Regards
Philippe Torrelli
-----Example -----
MediaStream.cxx ( This is with v 3157 )
c:\minisip_w32\trunk\libmutil\include\libmutil\memobject.h(329) : error
C2027: utilisation du type non défini 'SoundSource'
c:\minisip_w32\trunk\libminisip\include\libminisip\soundcard\audiomixer.h(46
) : voir la déclaration de 'SoundSource'
c:\minisip_w32\trunk\libmutil\include\libmutil\memobject.h(325) :
lors de la compilation de la fonction membre '<Inconnu>' de la classe
<Inconnu>
c:\minisip_w32\trunk\libmutil\include\libmutil\memobject.h(359) :
lors de la compilation de la fonction membre '<Inconnu>' de la classe
<Inconnu>
d:\msvc8\vc\include\list(41) : voir la référence à l'instanciation
de la classe modèle 'MRef<OPType>' en cours de compilation
with
[
OPType=SoundSource *
]
d:\msvc8\vc\include\list(111) : voir la référence à l'instanciation
de la classe modèle 'std::_List_nod<_Ty,_Alloc>::_Node' en cours de
compilation
with
[
_Ty=MRef<SoundSource *>,
_Alloc=std::allocator<MRef<SoundSource *>>
]
d:\msvc8\vc\include\list(110) : lors de la compilation de la
fonction membre '<Inconnu>' de la classe <Inconnu>
c:\minisip_w32\trunk\libminisip\include\libminisip\soundcard\soundio.h(225)
: voir la référence à l'instanciation de la classe modèle 'std::list<_Ty>'
en cours de compilation
with
[
_Ty=MRef<SoundSource *>
]
c:\minisip_w32\trunk\libmutil\include\libmutil\memobject.h(329) : error
C2227: la partie gauche de '->decRefCount' doit pointer vers un type
class/struct/union/générique
c:\minisip_w32\trunk\libmutil\include\libmutil\memobject.h(294) : error
C2680: 'SoundSource *' : type de cible non valide pour dynamic_cast
'SoundSource' : la classe doit être définie avant une utilisation
dans un dynamic_cast
c:\minisip_w32\trunk\libmutil\include\libmutil\memobject.h(291) :
lors de la compilation de la fonction membre '<Inconnu>' de la classe
<Inconnu>
c:\minisip_w32\trunk\libmutil\include\libmutil\memobject.h(329) : error
C2027: utilisation du type non défini 'MikeyMessage'
c:\minisip_w32\trunk\libmikey\include\libmikey\keyagreement.h(69) :
voir la déclaration de 'MikeyMessage'
c:\minisip_w32\trunk\libmutil\include\libmutil\memobject.h(325) :
lors de la compilation de la fonction membre '<Inconnu>' de la classe
<Inconnu>
c:\minisip_w32\trunk\libmutil\include\libmutil\memobject.h(359) :
lors de la compilation de la fonction membre '<Inconnu>' de la classe
<Inconnu>
c:\minisip_w32\trunk\libmikey\include\libmikey\keyagreement.h(216) :
voir la référence à l'instanciation de la classe modèle 'MRef<OPType>' en
cours de compilation
with
[
OPType=MikeyMessage *
]
c:\minisip_w32\trunk\libmutil\include\libmutil\memobject.h(329) : error
C2227: la partie gauche de '->decRefCount' doit pointer vers un type
class/struct/union/générique
c:\minisip_w32\trunk\libmutil\include\libmutil\memobject.h(294) : error
C2680: 'MikeyMessage *' : type de cible non valide pour dynamic_cast
'MikeyMessage' : la classe doit être définie avant une utilisation
dans un dynamic_cast
c:\minisip_w32\trunk\libmutil\include\libmutil\memobject.h(291) :
lors de la compilation de la fonction membre '<Inconnu>' de la classe
<Inconnu>
MediaHandler.cxx
c:\minisip_w32\trunk\libmutil\include\libmutil\memobject.h(329) : error
C2027: utilisation du type non défini 'MikeyMessage'
c:\minisip_w32\trunk\libmikey\include\libmikey\keyagreement.h(69) :
voir la déclaration de 'MikeyMessage'
c:\minisip_w32\trunk\libmutil\include\libmutil\memobject.h(325) :
lors de la compilation de la fonction membre '<Inconnu>' de la classe
<Inconnu>
c:\minisip_w32\trunk\libmutil\include\libmutil\memobject.h(359) :
lors de la compilation de la fonction membre '<Inconnu>' de la classe
<Inconnu>
c:\minisip_w32\trunk\libmikey\include\libmikey\keyagreement.h(216) :
voir la référence à l'instanciation de la classe modèle 'MRef<OPType>' en
cours de compilation
with
[
OPType=MikeyMessage *
]
c:\minisip_w32\trunk\libmutil\include\libmutil\memobject.h(329) : error
C2227: la partie gauche de '->decRefCount' doit pointer vers un type
class/struct/union/générique
c:\minisip_w32\trunk\libmutil\include\libmutil\memobject.h(294) : error
C2680: 'MikeyMessage *' : type de cible non valide pour dynamic_cast
'MikeyMessage' : la classe doit être définie avant une utilisation
dans un dynamic_cast
c:\minisip_w32\trunk\libmutil\include\libmutil\memobject.h(291) :
lors de la compilation de la fonction membre '<Inconnu>' de la classe
<Inconnu>
c:\minisip_w32\trunk\libmutil\include\libmutil\memobject.h(318) : error
C2027: utilisation du type non défini 'ConfMessageRouter'
c:\minisip_w32\trunk\libminisip\include\libminisip\gui\gui.h(38) :
voir la déclaration de 'ConfMessageRouter'
c:\minisip_w32\trunk\libmutil\include\libmutil\memobject.h(315) :
lors de la compilation de la fonction membre '<Inconnu>' de la classe
<Inconnu>
c:\minisip_w32\trunk\libmutil\include\libmutil\memobject.h(353) :
lors de la compilation de la fonction membre '<Inconnu>' de la classe
<Inconnu>
c:\minisip_w32\trunk\libminisip\include\libminisip\gui\gui.h(125) :
voir la référence à l'instanciation de la classe modèle 'MRef<OPType>' en
cours de compilation
with
[
OPType=ConfMessageRouter *
]
c:\minisip_w32\trunk\libmutil\include\libmutil\memobject.h(318) : error
C2227: la partie gauche de '->incRefCount' doit pointer vers un type
class/struct/union/générique
c:\minisip_w32\trunk\libmutil\include\libmutil\memobject.h(329) : error
C2027: utilisation du type non défini 'ConfMessageRouter'
c:\minisip_w32\trunk\libminisip\include\libminisip\gui\gui.h(38) :
voir la déclaration de 'ConfMessageRouter'
c:\minisip_w32\trunk\libmutil\include\libmutil\memobject.h(325) :
lors de la compilation de la fonction membre '<Inconnu>' de la classe
<Inconnu>
c:\minisip_w32\trunk\libmutil\include\libmutil\memobject.h(329) : error
C2227: la partie gauche de '->decRefCount' doit pointer vers un type
class/struct/union/générique
c:\minisip_w32\trunk\libmutil\include\libmutil\memobject.h(294) : error
C2680: 'ConfMessageRouter *' : type de cible non valide pour dynamic_cast
'ConfMessageRouter' : la classe doit être définie avant une
utilisation dans un dynamic_cast
c:\minisip_w32\trunk\libmutil\include\libmutil\memobject.h(291) :
lors de la compilation de la fonction membre '<Inconnu>' de la classe
<Inconnu>
c:\minisip_w32\trunk\libmutil\include\libmutil\memobject.h(329) : error
C2027: utilisation du type non défini 'FileSoundDevice'
c:\minisip_w32\trunk\libminisip\include\libminisip\mediahandler\callrecorder
.h(35) : voir la déclaration de 'FileSoundDevice'
c:\minisip_w32\trunk\libmutil\include\libmutil\memobject.h(325) :
lors de la compilation de la fonction membre '<Inconnu>' de la classe
<Inconnu>
c:\minisip_w32\trunk\libmutil\include\libmutil\memobject.h(359) :
lors de la compilation de la fonction membre '<Inconnu>' de la classe
<Inconnu>
c:\minisip_w32\trunk\libminisip\include\libminisip\mediahandler\callrecorder
.h(206) : voir la référence à l'instanciation de la classe modèle
'MRef<OPType>' en cours de compilation
with
[
OPType=FileSoundDevice *
]
c:\minisip_w32\trunk\libmutil\include\libmutil\memobject.h(329) : error
C2227: la partie gauche de '->decRefCount' doit pointer vers un type
class/struct/union/générique
c:\minisip_w32\trunk\libmutil\include\libmutil\memobject.h(294) : error
C2680: 'FileSoundDevice *' : type de cible non valide pour dynamic_cast
'FileSoundDevice' : la classe doit être définie avant une
utilisation dans un dynamic_cast
c:\minisip_w32\trunk\libmutil\include\libmutil\memobject.h(291) :
lors de la compilation de la fonction membre '<Inconnu>' de la classe
<Inconnu>
Media.cxx
c:\minisip_w32\trunk\libmutil\include\libmutil\memobject.h(329) : error
C2027: utilisation du type non défini 'SoundSource'
c:\minisip_w32\trunk\libminisip\include\libminisip\soundcard\audiomixer.h(46
) : voir la déclaration de 'SoundSource'
c:\minisip_w32\trunk\libmutil\include\libmutil\memobject.h(325) :
lors de la compilation de la fonction membre '<Inconnu>' de la classe
<Inconnu>
c:\minisip_w32\trunk\libmutil\include\libmutil\memobject.h(359) :
lors de la compilation de la fonction membre '<Inconnu>' de la classe
<Inconnu>
d:\msvc8\vc\include\list(41) : voir la référence à l'instanciation
de la classe modèle 'MRef<OPType>' en cours de compilation
with
[
OPType=SoundSource *
]
d:\msvc8\vc\include\list(111) : voir la référence à l'instanciation
de la classe modèle 'std::_List_nod<_Ty,_Alloc>::_Node' en cours de
compilation
with
[
_Ty=MRef<SoundSource *>,
_Alloc=std::allocator<MRef<SoundSource *>>
]
d:\msvc8\vc\include\list(110) : lors de la compilation de la
fonction membre '<Inconnu>' de la classe <Inconnu>
c:\minisip_w32\trunk\libminisip\include\libminisip\soundcard\soundio.h(225)
: voir la référence à l'instanciation de la classe modèle 'std::list<_Ty>'
en cours de compilation
with
[
_Ty=MRef<SoundSource *>
]
c:\minisip_w32\trunk\libmutil\include\libmutil\memobject.h(329) : error
C2227: la partie gauche de '->decRefCount' doit pointer vers un type
class/struct/union/générique
c:\minisip_w32\trunk\libmutil\include\libmutil\memobject.h(294) : error
C2680: 'SoundSource *' : type de cible non valide pour dynamic_cast
'SoundSource' : la classe doit être définie avant une utilisation
dans un dynamic_cast
c:\minisip_w32\trunk\libmutil\include\libmutil\memobject.h(291) :
lors de la compilation de la fonction membre '<Inconnu>' de la classe
<Inconnu>
c:\minisip_w32\trunk\libmutil\include\libmutil\memobject.h(329) : error
C2027: utilisation du type non défini 'MikeyMessage'
c:\minisip_w32\trunk\libmikey\include\libmikey\keyagreement.h(69) :
voir la déclaration de 'MikeyMessage'
c:\minisip_w32\trunk\libmutil\include\libmutil\memobject.h(325) :
lors de la compilation de la fonction membre '<Inconnu>' de la classe
<Inconnu>
c:\minisip_w32\trunk\libmutil\include\libmutil\memobject.h(359) :
lors de la compilation de la fonction membre '<Inconnu>' de la classe
<Inconnu>
c:\minisip_w32\trunk\libmikey\include\libmikey\keyagreement.h(216) :
voir la référence à l'instanciation de la classe modèle 'MRef<OPType>' en
cours de compilation
with
[
OPType=MikeyMessage *
]
c:\minisip_w32\trunk\libmutil\include\libmutil\memobject.h(329) : error
C2227: la partie gauche de '->decRefCount' doit pointer vers un type
class/struct/union/générique
c:\minisip_w32\trunk\libmutil\include\libmutil\memobject.h(294) : error
C2680: 'MikeyMessage *' : type de cible non valide pour dynamic_cast
'MikeyMessage' : la classe doit être définie avant une utilisation
dans un dynamic_cast
c:\minisip_w32\trunk\libmutil\include\libmutil\memobject.h(291) :
lors de la compilation de la fonction membre '<Inconnu>' de la classe
<Inconnu>
DtmfSender.cxx
c:\minisip_w32\trunk\libmutil\include\libmutil\memobject.h(329) : error
C2027: utilisation du type non défini 'MikeyMessage'
c:\minisip_w32\trunk\libmikey\include\libmikey\keyagreement.h(69) :
voir la déclaration de 'MikeyMessage'
c:\minisip_w32\trunk\libmutil\include\libmutil\memobject.h(325) :
lors de la compilation de la fonction membre '<Inconnu>' de la classe
<Inconnu>
c:\minisip_w32\trunk\libmutil\include\libmutil\memobject.h(359) :
lors de la compilation de la fonction membre '<Inconnu>' de la classe
<Inconnu>
c:\minisip_w32\trunk\libmikey\include\libmikey\keyagreement.h(216) :
voir la référence à l'instanciation de la classe modèle 'MRef<OPType>' en
cours de compilation
with
[
OPType=MikeyMessage *
]
c:\minisip_w32\trunk\libmutil\include\libmutil\memobject.h(329) : error
C2227: la partie gauche de '->decRefCount' doit pointer vers un type
class/struct/union/générique
c:\minisip_w32\trunk\libmutil\include\libmutil\memobject.h(294) : error
C2680: 'MikeyMessage *' : type de cible non valide pour dynamic_cast
'MikeyMessage' : la classe doit être définie avant une utilisation
dans un dynamic_cast
c:\minisip_w32\trunk\libmutil\include\libmutil\memobject.h(291) :
lors de la compilation de la fonction membre '<Inconnu>' de la classe
<Inconnu>
c:\minisip_w32\trunk\libmutil\include\libmutil\memobject.h(329) : error
C2027: utilisation du type non défini 'SoundSource'
c:\minisip_w32\trunk\libminisip\include\libminisip\soundcard\audiomixer.h(46
) : voir la déclaration de 'SoundSource'
c:\minisip_w32\trunk\libmutil\include\libmutil\memobject.h(325) :
lors de la compilation de la fonction membre '<Inconnu>' de la classe
<Inconnu>
c:\minisip_w32\trunk\libmutil\include\libmutil\memobject.h(359) :
lors de la compilation de la fonction membre '<Inconnu>' de la classe
<Inconnu>
d:\msvc8\vc\include\list(41) : voir la référence à l'instanciation
de la classe modèle 'MRef<OPType>' en cours de compilation
with
[
OPType=SoundSource *
]
d:\msvc8\vc\include\list(111) : voir la référence à l'instanciation
de la classe modèle 'std::_List_nod<_Ty,_Alloc>::_Node' en cours de
compilation
with
[
_Ty=MRef<SoundSource *>,
_Alloc=std::allocator<MRef<SoundSource *>>
]
d:\msvc8\vc\include\list(110) : lors de la compilation de la
fonction membre '<Inconnu>' de la classe <Inconnu>
c:\minisip_w32\trunk\libminisip\include\libminisip\soundcard\soundio.h(225)
: voir la référence à l'instanciation de la classe modèle 'std::list<_Ty>'
en cours de compilation
with
[
_Ty=MRef<SoundSource *>
]
c:\minisip_w32\trunk\libmutil\include\libmutil\memobject.h(329) : error
C2227: la partie gauche de '->decRefCount' doit pointer vers un type
class/struct/union/générique
c:\minisip_w32\trunk\libmutil\include\libmutil\memobject.h(294) : error
C2680: 'SoundSource *' : type de cible non valide pour dynamic_cast
'SoundSource' : la classe doit être définie avant une utilisation
dans un dynamic_cast
c:\minisip_w32\trunk\libmutil\include\libmutil\memobject.h(291) :
lors de la compilation de la fonction membre '<Inconnu>' de la classe
<Inconnu>
CallRecorder.cxx
c:\minisip_w32\trunk\libminisip\include\libminisip\mediahandler\audiomedia.h
(177) : voir la déclaration de 'AudioMediaSource'
c:\minisip_w32\trunk\libmutil\include\libmutil\memobject.h(329) : error
C2027: utilisation du type non défini 'MikeyMessage'
c:\minisip_w32\trunk\libmikey\include\libmikey\keyagreement.h(69) :
voir la déclaration de 'MikeyMessage'
c:\minisip_w32\trunk\libmutil\include\libmutil\memobject.h(325) :
lors de la compilation de la fonction membre '<Inconnu>' de la classe
<Inconnu>
c:\minisip_w32\trunk\libmutil\include\libmutil\memobject.h(359) :
lors de la compilation de la fonction membre '<Inconnu>' de la classe
<Inconnu>
c:\minisip_w32\trunk\libmikey\include\libmikey\keyagreement.h(216) :
voir la référence à l'instanciation de la classe modèle 'MRef<OPType>' en
cours de compilation
with
[
OPType=MikeyMessage *
]
c:\minisip_w32\trunk\libmutil\include\libmutil\memobject.h(329) : error
C2227: la partie gauche de '->decRefCount' doit pointer vers un type
class/struct/union/générique
c:\minisip_w32\trunk\libmutil\include\libmutil\memobject.h(294) : error
C2680: 'MikeyMessage *' : type de cible non valide pour dynamic_cast
'MikeyMessage' : la classe doit être définie avant une utilisation
dans un dynamic_cast
c:\minisip_w32\trunk\libmutil\include\libmutil\memobject.h(291) :
lors de la compilation de la fonction membre '<Inconnu>' de la classe
<Inconnu>
Added
#include<libmikey/MikeyMessage.h>
#include<libminisip/soundcard/Soundsource.h>
At the end of the include list in MediaStream.cxx , it now compiles...
More information about the Minisip-devel
mailing list