Compile errors with VC++ 6

Hello,

I try to build the example with VC++ 6 and get many erros and some warning:

Please, can you help ?

Thanks and best regards
Manfred


d:\panda3d-1.3.2\include\typeregistry.h(117) : error C2955: ‘set’ : Fuer die Verwendung einer Vorlagenklasse ist eine Vorlagen-Argumentliste erforderlich
c:\programme\microsoft visual studio\vc98\include\set(124) : Siehe Deklaration von ‘set’
d:\panda3d-1.3.2\include\notifycategory.i(46) : warning C4273: ‘get_severity’ : Inkonsistente DLL-Bindung. dllexport angenommen.
d:\panda3d-1.3.2\include\pipelinecyclertrivialimpl.i(217) : warning C4273: ‘write_upstream’ : Inkonsistente DLL-Bindung. dllexport angenommen.
d:\panda3d-1.3.2\include\pointertoarray.h(102) : warning C4275: class ‘PointerToBase<class NodeRefCountObj<class pvector > >’ ist keine DLL-Schnittstelle und wurde als Basisklasse für die DLL-Schnittstelle class ‘PointerToArray’ verwendet
d:\panda3d-1.3.2\include\pta_uchar.h(38) : Siehe Verweis auf Instantiierung der kompilierten Klassenvorlage ‘PointerToArray’
d:\panda3d-1.3.2\include\pointertoarray.h(215) : warning C4275: class ‘PointerToBase<class NodeRefCountObj<class pvector > >’ ist keine DLL-Schnittstelle und wurde als Basisklasse für die DLL-Schnittstelle class ‘ConstPointerToArray’ verwendet
d:\panda3d-1.3.2\include\pta_uchar.h(39) : Siehe Verweis auf Instantiierung der kompilierten Klassenvorlage ‘ConstPointerToArray’
d:\panda3d-1.3.2\include\transformblend.i(278) : error C2955: ‘vector’ : Fuer die Verwendung einer Vorlagenklasse ist eine Vorlagen-Argumentliste erforderlich
c:\programme\microsoft visual studio\vc98\include\vector(244) : Siehe Deklaration von ‘vector’
d:\panda3d-1.3.2\include\pointertoarray.h(102) : warning C4275: class ‘PointerToBase<class NodeRefCountObj<class pvector > >’ ist keine DLL-Schnittstelle und wurde als Basisklasse für die DLL-Schnittstelle class ‘PointerToArray’ verwendet
d:\panda3d-1.3.2\include\pta_int.h(38) : Siehe Verweis auf Instantiierung der kompilierten Klassenvorlage ‘PointerToArray’
d:\panda3d-1.3.2\include\pointertoarray.h(215) : warning C4275: class ‘PointerToBase<class NodeRefCountObj<class pvector > >’ ist keine DLL-Schnittstelle und wurde als Basisklasse für die DLL-Schnittstelle class ‘ConstPointerToArray’ verwe
ndet
d:\panda3d-1.3.2\include\pta_int.h(39) : Siehe Verweis auf Instantiierung der kompilierten Klassenvorlage ‘ConstPointerToArray’
d:\panda3d-1.3.2\include\pandanode.i(376) : warning C4273: ‘get_prev_transform’ : Inkonsistente DLL-Bindung. dllexport angenommen.
d:\panda3d-1.3.2\include\pandanode.i(880) : error C2248: “Down” : Kein Zugriff auf private typedef, dessen Deklaration in der Klasse “PandaNode” erfolgte
d:\panda3d-1.3.2\include\pandanode.h(344) : Siehe Deklaration von ‘Down’
d:\panda3d-1.3.2\include\pandanode.i(880) : error C2248: “Down” : Kein Zugriff auf private typedef, dessen Deklaration in der Klasse “PandaNode” erfolgte
d:\panda3d-1.3.2\include\pandanode.h(344) : Siehe Deklaration von ‘Down’
d:\panda3d-1.3.2\include\pandanode.i(891) : error C2248: “Down” : Kein Zugriff auf private typedef, dessen Deklaration in der Klasse “PandaNode” erfolgte
d:\panda3d-1.3.2\include\pandanode.h(344) : Siehe Deklaration von ‘Down’
d:\panda3d-1.3.2\include\pandanode.i(891) : error C2248: “Down” : Kein Zugriff auf private typedef, dessen Deklaration in der Klasse “PandaNode” erfolgte
d:\panda3d-1.3.2\include\pandanode.h(344) : Siehe Deklaration von ‘Down’
d:\panda3d-1.3.2\include\pandanode.i(904) : error C2248: “Down” : Kein Zugriff auf private typedef, dessen Deklaration in der Klasse “PandaNode” erfolgte
d:\panda3d-1.3.2\include\pandanode.h(344) : Siehe Deklaration von ‘Down’
d:\panda3d-1.3.2\include\pandanode.i(904) : error C2248: “Down” : Kein Zugriff auf private typedef, dessen Deklaration in der Klasse “PandaNode” erfolgte
d:\panda3d-1.3.2\include\pandanode.h(344) : Siehe Deklaration von ‘Down’
d:\panda3d-1.3.2\include\pandanode.i(915) : error C2248: “Down” : Kein Zugriff auf private typedef, dessen Deklaration in der Klasse “PandaNode” erfolgte
d:\panda3d-1.3.2\include\pandanode.h(344) : Siehe Deklaration von ‘Down’
d:\panda3d-1.3.2\include\pandanode.i(915) : error C2248: “Down” : Kein Zugriff auf private typedef, dessen Deklaration in der Klasse “PandaNode” erfolgte
d:\panda3d-1.3.2\include\pandanode.h(344) : Siehe Deklaration von ‘Down’
d:\panda3d-1.3.2\include\pandanode.i(928) : error C2248: “Up” : Kein Zugriff auf private typedef, dessen Deklaration in der Klasse “PandaNode” erfolgte
d:\panda3d-1.3.2\include\pandanode.h(357) : Siehe Deklaration von ‘Up’
d:\panda3d-1.3.2\include\pandanode.i(928) : error C2248: “Up” : Kein Zugriff auf private typedef, dessen Deklaration in der Klasse “PandaNode” erfolgte
d:\panda3d-1.3.2\include\pandanode.h(357) : Siehe Deklaration von ‘Up’
d:\panda3d-1.3.2\include\pandanode.i(939) : error C2248: “Up” : Kein Zugriff auf private typedef, dessen Deklaration in der Klasse “PandaNode” erfolgte
d:\panda3d-1.3.2\include\pandanode.h(357) : Siehe Deklaration von ‘Up’
d:\panda3d-1.3.2\include\pandanode.i(939) : error C2248: “Up” : Kein Zugriff auf private typedef, dessen Deklaration in der Klasse “PandaNode” erfolgte
d:\panda3d-1.3.2\include\pandanode.h(357) : Siehe Deklaration von ‘Up’
d:\panda3d-1.3.2\include\pandanode.i(1543) : warning C4273: ‘get_prev_transform’ : Inkonsistente DLL-Bindung. dllexport angenommen.
d:\panda3d-1.3.2\include\geomnode.i(243) : error C2248: “GeomList” : Kein Zugriff auf private typedef, dessen Deklaration in der Klasse “GeomNode” erfolgte
d:\panda3d-1.3.2\include\geomnode.h(101) : Siehe Deklaration von ‘GeomList’
d:\panda3d-1.3.2\include\geomnode.i(243) : error C2248: “GeomList” : Kein Zugriff auf private typedef, dessen Deklaration in der Klasse “GeomNode” erfolgte
d:\panda3d-1.3.2\include\geomnode.h(101) : Siehe Deklaration von ‘GeomList’
d:\panda3d-1.3.2\include\geomnode.i(253) : error C2248: “GeomList” : Kein Zugriff auf private typedef, dessen Deklaration in der Klasse “GeomNode” erfolgte
d:\panda3d-1.3.2\include\geomnode.h(101) : Siehe Deklaration von ‘GeomList’
d:\panda3d-1.3.2\include\geomnode.i(253) : error C2248: “GeomList” : Kein Zugriff auf private typedef, dessen Deklaration in der Klasse “GeomNode” erfolgte
d:\panda3d-1.3.2\include\geomnode.h(101) : Siehe Deklaration von ‘GeomList’
d:\panda3d-1.3.2\include\geomnode.i(264) : error C2248: “GeomList” : Kein Zugriff auf private typedef, dessen Deklaration in der Klasse “GeomNode” erfolgte
d:\panda3d-1.3.2\include\geomnode.h(101) : Siehe Deklaration von ‘GeomList’
d:\panda3d-1.3.2\include\geomnode.i(264) : error C2248: “GeomList” : Kein Zugriff auf private typedef, dessen Deklaration in der Klasse “GeomNode” erfolgte
d:\panda3d-1.3.2\include\geomnode.h(101) : Siehe Deklaration von ‘GeomList’
d:\panda3d-1.3.2\include\bitarray.i(413) : warning C4273: ‘clear’ : Inkonsistente DLL-Bindung. dllexport angenommen.

We haven’t attempted to build Panda using VC6 in years, so there may be quite a few compilation errors like this, since VC6 is a pretty fussy compiler.

For this particular error, change the line:

extern "C" EXPCL_DTOOL  int get_best_parent_from_Set(int id, const std::set<int> &set);

To:

extern "C" EXPCL_DTOOL  int get_best_parent_from_Set(int id, const std::set<int> &this_set);

And make similar changes in typeRegistry.cxx. (In VC6, you weren’t allowed to have a variable name the same as a template name, so “set” is not a valid variable name in VC6.)

Then we’ll see what error you get next. This might be a long process. :frowning:

For the record, we currently build Panda using VC7 in the VR Studio. All of the thirdparty examples are compiled using VC7. You will probably have the best luck if you can find a copy of this compiler.

David