Problem in Dynamic Library

Code:


#include <vtkAppendPolyData.h>
#include <vtkNew.h>
#include <vtkImageConnectivityFilter.h>
#include <vtkPolyData.h>
#include <vtkUnsignedCharArray.h>
#include <vtkPoints.h>
#include <vtkCellArray.h>
#include <vtkFloatArray.h>
#include <vtkPointData.h>
#include <vtkPolygon.h>
#include <vtkSmartPointer.h>
#include <vtkImageData.h>
#include <vtkConnectedPointsFilter.h>
#include <vtkConnectivityFilter.h>
#include <vtkPointConnectivityFilter.h>
#include <vtkPolyDataConnectivityFilter.h>
#include <vtkVersion.h>
#include <vtkImageMapper3D.h>
#include <vtkImageStencil.h>
#include <vtkImageStencilData.h>
#include <vtkImageToImageStencil.h>
#include <vtkPolyDataToImageStencil.h>
#include <vtkImageProperty.h>

vtkNew<vtkImageConnectivityFilter> connectivity[4];
vtkSmartPointer<vtkImageData> image4 =  vtkSmartPointer<vtkImageData>::New();
int i1;

image4->SetDimensions(dim);
image4->SetSpacing(scale1);   
image4->AllocateScalars(VTK_UNSIGNED_CHAR, 1);
memcpy(image4->GetScalarPointer(), image3, dim[0]*dim[1]*dim[2]);


  #pragma omp parallel num_threads(4)
  {
     int nr=omp_get_thread_num();
 float x1=(datax[nr*2]+datax[nr*2+1])/2.0f;
     float y1=(datay[nr*2]+datay[nr*2+1])/2.0f;
 float z1=(dataz[nr*2]+dataz[nr*2+1])/2.0f;

	vtkPoints *seedPoints2 = vtkPoints::New();

    seedPoints2->InsertNextPoint(x1,y1,z1);

    vtkUnsignedCharArray *seedScalars2 = vtkUnsignedCharArray::New();

    seedScalars2->InsertNextValue(255);
	vtkPolyData *seedData2 = vtkPolyData::New();

    seedData2->SetPoints(seedPoints2);
    seedData2->GetPointData()->SetScalars(seedScalars2);
 
    connectivity[nr]->SetInputData(image4);
    connectivity[nr]->SetScalarRange(255, 255);
    connectivity[nr]->SetSeedData(seedData2);
    connectivity[nr]->Update();

  }