スポンサーリンク
VTK の MFC 対応 vtkMFCWindow は、文字セットがUnicodeの場合、Debugモードで実行中に以下で実行時エラーが発生する。
m_vtkMFCWindow = new vtkMFCWindow(this);
VTKのCMakeLists.txtを編集してこれを回避できるらしい。
VTKのソースコードをダウンロードしたら、以下のファイルを開く
VTK-9.5.1\GUISupport\MFC\CMakeLists.txt
CMakeLists.txt内、ファイル中央付近に以下のように追加をする。
# C runtime lib linkage and MFC lib linkage *MUST* match.
# If linking to C runtime static lib, link to MFC static lib.
# If linking to C runtime dll, link to MFC dll.
if (vtk_mfc_static)
set(CMAKE_MFC_FLAG 1)
else ()
set(CMAKE_MFC_FLAG 2)
endif ()
set(classes
vtkMFCWindow
)
vtk_module_add_module(VTK::GUISupportMFC
CLASSES ${classes})
vtk_add_test_mangling(VTK::GUISupportMFC)
### 追加 ###
vtk_module_definitions(VTK::GUISupportMFC PRIVATE _UNICODE UNICODE)
#############
if (vtk_mfc_static)
vtk_module_link(VTK::GUISupportMFC
PRIVATE
"debug;nafxcwd;optimized;nafxcw"
"debug;LIBCMTD;optimized;LIBCMT"
Uxtheme
windowscodecs)
else ()
vtk_module_definitions(VTK::GUISupportMFC
PRIVATE
_AFXDLL)
endif ()