TCHAR と std::string と char と wchar_t と OpenCV

OpenCV 2.0 の関数(cv::imread() だとか)に _TCHAR 配列を入力できなくて困った._TCHAR は _UNICODE を定義しているとき wchar_t に化け,これが合わない.wchar_t を使用しなければ良い.回避法は2種類ある.

  • _UNICODE を監視し,wcstombs_s を使う
  • プロジェクト設定>構成>全般>文字セット「Unicode 文字セットを使用する」を「マルチバイト文字セットを使用する」に変更する

どちらも面倒なので,プロジェクトテンプレートに「空のプロジェクト」を選ぶことにする.最初から「マルチバイト文字セットを使用する」だからね.

_TCHAR すげーって思っていたのになあ.