c6658769 2014-07-01 03:43 采纳率: 0%
浏览 996

VS2010导入VTK库,总是有某些类调用::NEW()以后地址为0x000000

this->ren1 = vtkRenderer::New();
vtkRenderWindow *renWin = vtkRenderWindow::New();
renWin->AddRenderer(ren1);

我使用的是VTK6.0.0,语言使用C++
比如这段代码,2次New的地址都是0x000000。
问题1,new出0x000000是为什么呢?编译的时候并不报错。
问题2,如果我把这个小程序写进VTK源码工程里,就不会出现问题,但是我自己新建工程,导入所有的头文件和lib,以及dll文件就出错,是不是因为库的问题呢?

  • 写回答

1条回答

  • ChatGPTᴼᴾᴱᴺᴬᴵ 2023-03-13 12:58
    关注

    该回答引用ChatGPT

    问题1:new出0x000000是为什么呢?编译的时候并不报错。

    答:这通常是因为在使用VTK的过程中没有初始化VTK的对象工厂。VTK的对象工厂是用来创建VTK对象的工厂类,如果没有初始化,则VTK将无法创建对象,从而返回空指针。在VTK中,如果您需要使用vtkObject的子类(例如vtkRenderer、vtkRenderWindow等),则应该使用vtkSmartPointer来管理对象的生命周期,而不是直接使用new和delete。这是因为vtkSmartPointer具有自动引用计数机制,可以确保对象被正确释放。


    问题2:如果我把这个小程序写进VTK源码工程里,就不会出现问题,但是我自己新建工程,导入所有的头文件和lib,以及dll文件就出错,是不是因为库的问题呢?

    答:可能是因为您在新建工程时没有正确设置链接器和包含文件的路径。请确保将包含文件和库文件的路径添加到项目属性中。此外,如果您使用的是VTK的动态链接库版本,则应该将dll文件复制到生成的可执行文件目录中,以便正确加载VTK库。

    评论

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器