[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