vtkcallbackcommand.h(46): error C2660: “vtkObjectBase::operator new”: 函数不接受 3 个参数

    开发环境: Visual Studio 2010

    VTK版本: vtk-5.10.1

    按照参考资料[2]59页的SDI编程实例来操作的时候,添加头文件vtkCallbackCommand.h时,编译出现了一下错误。


                                                             图1 

    又是一个源码级的错误。难道vtk-5.10.1的源码有误?不太愿意去相信这个,后来在网上看到了一片文章(参考资料[1]),发现所遇到的问题极为相似,因此猜测是MFC调试版本中定义预处理器扩展宏和vtk中的宏的冲突问题。

    在整个解决方案中查找“DEBUG_NEW”,结果如图2所示,将MFC_SDI_VTKView.cpp中的#define new DEBUG_NEW注释掉即可(由于vtkCallbackCommand.h的添加位置就在这个文件中的#define new DEBUG_NEW下面)。又或者将vtkCallbackCommand.h移到#define new DEBUG_NEW上面即可!如图3所示。(这个最好!)

vtkcallbackcommand.h(46): error C2660: “vtkObjectBase::operator new”: 函数不接受 3 个参数_第1张图片

                                                图2

  图3

                                           图3

参考资料

[1]PRB: Microsoft 基础类 DEBUG_NEW 并不适用于 GDI+

[2]三维图像编程. 周振环 等著. 电子工业出版社

你可能感兴趣的:(vtkcallbackcommand.h(46): error C2660: “vtkObjectBase::operator new”: 函数不接受 3 个参数)