スポンサーリンク

VTK 9.5.1 ビルド unicode MFC 対応

VTK の MFC 対応 vtkMFCWindow は、文字セットがUnicodeの場合、Debugモードで実行中に以下で実行時エラーが発生する。

m_vtkMFCWindow = new vtkMFCWindow(this);

VTKのCMakeLists.txtを編集してこれを回避できるらしい。

VTK 9.5.1 のCMake

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 ()

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)


この記事のトラックバックURL: