[vtkusers] VTK-Win32 problem only : including vtk includes windows.h

Alexander Fiksel alexf at coherentsolutions.com
Tue May 11 13:20:07 EDT 2004


*****
        #include <vtkObjectBase.h>
        #include <stdio.h>

        class MyEmptyObject : public vtkObjectBase
        {
        public:
            virtual const char * GetClassName()
            {
                return "MyEmptyObject";
            }
        };

       
        int main()
        {
            vtkObjectBase * o = new MyEmptyObject;
            printf( "%s\n", o->GetClassName() );
        }
        But under Windows I get "vtkObjectBase", and because <windows.h> is included in <vtkObjectBase.h> before declaring vtkObjectBase::GetClassName, I don't know how to solve it.

******
The code above works differently Windows  and Linux not because of inclusion of <windows.h>, but because of differences in compilers. The problem is that you overrode the GetClassName incorrectly - the correct signature should be  const char* GetClassName() const and this code works as it was intended. The Linux compiler wasn't sophisticated enough to catch the difference

Alex 





More information about the vtkusers mailing list