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库。

    评论

报告相同问题?

悬赏问题

  • ¥50 导入文件到网吧的电脑并且在重启之后不会被恢复
  • ¥15 (希望可以解决问题)ma和mb文件无法正常打开,打开后是空白,但是有正常内存占用,但可以在打开Maya应用程序后打开场景ma和mb格式。
  • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝
  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
  • ¥15 错误 LNK2001 无法解析的外部符号
  • ¥50 安装pyaudiokits失败
  • ¥15 计组这些题应该咋做呀
  • ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?
  • ¥15 让node服务器有自动加载文件的功能