▼ げんたさん
> TextOut, ExtTextOut, GetTextExtentPoint , MessageBox等はWin95でもWide版が使えるのですね.
上に挙げられている関数だと、API関数 ::TextOut() と ::MessageBox() の Unicode 版は、
例外的に、API 関数 ::TextOut() だけは Win95 から Unicode 版が
標準で搭載されているらしいです。その他のものは、
いつか知らんの過去ログにも掲載されていますように、
以下の変換レイヤーでエミュレートされるとの事です。
Microsoft Layer for Unicode on Windows Me/98/95 Systems (MSUL)
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/mslu/winprog/microsoft_layer_for_unicode_on_windows_95_98_me_systems.asp
> 文字列処理はUnicodeで作って,プログラム本体は今まで通りANSI版でコンパイルという選択肢
掲示板の過去ログを眺める限り、サクラエディタの Unicode 化の背景には、
こういう事情があるんじゃないかなと勝手に想像しています(^^;)
1.Unicode 版と ANSI 版のバイナリを分けたくない。
2.Unicode サポート済みのプラットフォームでは、API 関数の機能をフルに引き出したい。
3.コアの部分は、単体バイナリで動かしたい。
そうだとすると、1.の条件で、TCHAR の使用はできなくなり・・・
2.の条件で、Unicode 版と ANSI 版それぞれの関数テーブルを用意しておき、
OSのバージョンを確認次第、起動時に切り替えることが要求されます。
3.の条件で、MSUL の導入に躊躇します。
これらを踏まえると、選択肢として残ってくるのは、
_MBCS を無視して、自作の関数テーブルで対応する…うぅ、みたいな?