Joeさん
English Translationと、返答ありがとうございます!
原因がわかりましたので、報告致します。
原因は、私のPCの環境変数(environment variables)にあった「LANG=jp」というのが問題でした・・・。
ShaderCompileWorker が、mcpp_run関数でusf ファイルをプリプロセスする際、
Multibyte chara encoding の設定がデフォルトの「sjis」に設定されているのですが、
この環境変数「LANG=jp」があると、エンコーディング設定を上書きしてしまうようです。
MCPP\mcpp-2.7.2\src\system.c(2066)
/*
* Set multi-byte character encoding according to environment variables
* LC_ALL, LC_CTYPE and LANG -- with preference in this order.
*/
if (! mb_changed) { /* -m option precedes */
if ((env = getenv( "LC_ALL")) != NULL)
set_encoding( env, "LC_ALL", 0);
else if ((env = getenv( "LC_CTYPE")) != NULL)
set_encoding( env, "LC_CTYPE", 0);
else if ((env = getenv( "LANG")) != NULL) // <<< ここでエンコーディングを変更してしまう!
set_encoding( env, "LANG", 0);
}
「LANG=jp」を削除することで対応できました。
別の対処方としましては、mcpp_run のオプションMcppOptionsに「McppOptions += TEXT(" -esjis");」を追加すると、設定にかかわらず、明示的にshift-jisでエンコードできるようです。
お騒がせして申し訳ありませんでした。よろしくお願い致します。