Visual c++ VTK-从6.1迁移到8.2

Visual c++ VTK-从6.1迁移到8.2,visual-c++,mfc,vtk,Visual C++,Mfc,Vtk,我有一个使用VTK 6.1/VS2008的VTK/MFC项目。我打算将此项目迁移到VTK 8.2/VS2010,但遇到了一个问题: 在stdafx.h,VTK 6.1中,我有: #define vtkRenderingCore_AUTOINIT 4(vtkInteractionStyle, vtkRenderingFreeType, vtkRenderingFreeTypeOpenGL, vtkRenderingOpenGL) #define vtkRenderingVolume_AUTOINI

我有一个使用VTK 6.1/VS2008的VTK/MFC项目。我打算将此项目迁移到VTK 8.2/VS2010,但遇到了一个问题:

在stdafx.h,VTK 6.1中,我有:

#define vtkRenderingCore_AUTOINIT 4(vtkInteractionStyle, vtkRenderingFreeType, vtkRenderingFreeTypeOpenGL, vtkRenderingOpenGL)
#define vtkRenderingVolume_AUTOINIT 1(vtkRenderingVolumeOpenGL)
这些初始化在VTK 8.2上不起作用,我得到一个链接错误:

error LNK2001: unresolved external symbol "void __cdecl vtkRenderingFreeTypeOpenGL_AutoInit_Construct(void)" (?vtkRenderingFreeTypeOpenGL_AutoInit_Construct@@YAXXZ)
vtkRenderingOpenGL2-8.2.lib(vtkOpenGLState.obj) : error LNK2019: unresolved external symbol __imp_SymGetLineFromAddr64 referenced in function "class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __cdecl getProgramStack(void)" (?getProgramStack@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@XZ)
。。。在VTK 8.2中应该写什么

稍后编辑: 我遇到另一个链接错误:

error LNK2001: unresolved external symbol "void __cdecl vtkRenderingFreeTypeOpenGL_AutoInit_Construct(void)" (?vtkRenderingFreeTypeOpenGL_AutoInit_Construct@@YAXXZ)
vtkRenderingOpenGL2-8.2.lib(vtkOpenGLState.obj) : error LNK2019: unresolved external symbol __imp_SymGetLineFromAddr64 referenced in function "class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __cdecl getProgramStack(void)" (?getProgramStack@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@XZ)
有什么问题吗?

使用OpenGL2怎么样

我在VTK 8.1,vs2017也有同样的问题

我更改了使用OpenGL2的CMAKE选项,并更改了定义

#include <vtkAutoInit.h>

VTK_MODULE_INIT(vtkInteractionStyle)
VTK_MODULE_INIT(vtkRenderingOpenGL2)
VTK_MODULE_INIT(vtkRenderingVolumeOpenGL2)
VTK_MODULE_INIT(vtkRenderingFreeType)
它成功了