[vtkusers] Qt + VTK 64-bit access violations

Bill Lorensen bill.lorensen at gmail.com
Fri Jan 10 15:20:54 EST 2014


This may explain your problem:
http://www.vtk.org/Wiki/VTK/VTK_6_Migration/Factories_now_require_defines

Bill


On Fri, Jan 10, 2014 at 2:44 PM,  <sean.larkin at lickenbrocktech.com> wrote:
> I've just started using Qt and VTK on 64-bit Windows.  I built both Qt and
> VTK from source code and installed them without problem, and installed the
> VS-Qt plugin.  I downloaded a couple of Qt-VTK C++ example projects.  I
> built the project file for VS2010 with Cmake.  These example projects
> compile and run fine and without errors.  After this I began to build my
> first Qt-VTK project with VS2010(no Cmake).  I designed a simple user
> interface with the Qt designer.  It has a tab control, QVTKWidget, and a
> splitter between them.  There are no slots defined.  When I changed the name
> of the QVTKWidget object it caused Intellisense errors, as it said that the
> ui class did not contain this new name.  I remedied this by converted the
> project to a Qt add-in (Is this a good thing to do?).  I then added a few
> member variables to the qwindow derived class, and the corresponding include
> statements.  When I tried to compile this I got errors regarding function
> definitions or something.  To fix this I added the proper libraries to the
> additional dependencies in the Linker\Input setting.  This confused me, as i
> thought it would link to the .dll files defined elsewhere, and not to the
> static .lib files.  Is this correct?  The Qt-VTK example projects link to
> the .lib files, but I didn't think it was necessary considering the presence
> of the .dll's.  Everything built fine, and the interface would popup if I
> ran it, but the qvtkwidget didn't have anything in it, it was transparent,
> and when I dragged the mouse across it I got access violations.  So I
> started to add an object for rendering into the qwindows constructor code.
> I added this code from one of the examples:
> vtkSmartPointer<vtkSphereSource> sphereSource =
>       vtkSmartPointer<vtkSphereSource>::New();
>   sphereSource->Update();
>   vtkSmartPointer<vtkPolyDataMapper> sphereMapper =
>       vtkSmartPointer<vtkPolyDataMapper>::New();
>   sphereMapper->SetInputConnection(sphereSource->GetOutputPort());
>   vtkSmartPointer<vtkActor> sphereActor =
>       vtkSmartPointer<vtkActor>::New();
>   sphereActor->SetMapper(sphereMapper);
>
> It compiles fine and I run it and get this error in a message box:
> Unhandled exception at 0x000000013f751e3c in QTVTKRender.exe: 0xC0000005:
> Access violation reading location 0x0000000000000000.
>
> And in the command window I get a generic warning: In... (this path leads to
> the source code where I compiled the VTK)
> And the next line I get: Error: no override found for 'vtkPolyDataMapper'.
>
> The user interface never appears and I have to break out.  I put a break
> point on the constructor, and the code never even reaches it.  Any ideas
> what is going on here?
>
> Thanks,
> Sean
>
> _______________________________________________
> Powered by www.kitware.com
>
> Visit other Kitware open-source projects at
> http://www.kitware.com/opensource/opensource.html
>
> Please keep messages on-topic and check the VTK FAQ at:
> http://www.vtk.org/Wiki/VTK_FAQ
>
> Follow this link to subscribe/unsubscribe:
> http://www.vtk.org/mailman/listinfo/vtkusers
>



-- 
Unpaid intern in BillsBasement at noware dot com


More information about the vtkusers mailing list