>面白いですね。
zakkiさん、ありがとうございます。
>定義だけされてるHSC3_OPT_UTF8IN 32も使えるとソースもUnicodeでかけていいんですが。
できるといいですね。いまのところ、スクリプトへUnicodeの文字を直接記述できないので、
入出力時の効果が主ですね。
わたしは、コンパイラの方がよくわかっていないので、他の方に期待しようと思いますが、
試すだけ試してみようかと思いもします。
>HSPランタイムのUnicode化、興味深いですね。
おにたまさん、ありがとうございます。
>内部の描画やテキスト処理は、WideChar(UTF16)を使用しているということですか?
内部のテキスト処理は、utf8が主で、一部にutf16の部分があります。
描画の部分は、utf8からその都度変換してutf16としてAPIへ渡しています。
>プラグインの相性とか
BMSCR構造体やHSPCTX構造体は特に触れていないので、その部分は問題ないと思うのですが、
code_getsで取得できる文字列はShiftJISではなく、utf8なので、
多くの関数に変更が必要になるかと思います。
>sjisに変換して渡すような仕組み
やはり、#func時のstrやsptrはsjisの方がよいかもしれませんね。
>ちょっとだけ使ってみました。
catsさん、ありがとうございます。
>毎回NO.74771のようなコードを走らせる必要があるんですか?
その必要がありました。
スクリプトエディタの方でutf8出力を指定できればよいのですが、
まだできないので、
コンパイル実行用のランタイムを別に作りましたので、
あとのリンクからダウンロードし、使ってみてください。
>デバッグモードが使えないようですが、対応していますか?(個人的にかなり痛い)
まだ、ランタイム側の変更のみなので、後で対応したいと思っていますが、
今のところできません。
また、同じDLLだと、Windows98を使っている方がデバッグウィンドウを使えなくなるので、
工夫が必要だと思っています(このランタイムの環境はWindowsXP以降のため)。
>こんな感じで使えたら嬉しいです。
wstrではできたのですが、wptrで出来なかったのは、バグです。
修正してきました。
あとのリンクからインストールすることで、治ると思います。
>あと、cnvwtosとcnvstowでUnicode->SJIS->Unicodeをしたら元に戻りませんでした。
Wという名が誤解を招いてる気もしますが、内部ではutf8です。
str型の変数もutf8で格納されているので、元にもは戻りません。
cnvwtosはUnicode(utf16)からShiftJISへ変換していて、
cnvstowはShiftJISからUnicode(utf16)へ変換されるのは、仕様です。
ただし、cnv8tow(utf8からUnicode(utf16)へ変換)や
cnvsto8(ShiftJISからutf8へ変換)
のような命令は用意しようかとも考えています。
----
バグ修正とコンパイル用ランタイムの追加で、
改良してきました。
https://www.dropbox.com/s/x3fjkjkrf97g5gu/hsp3W_002.zip?dl=0
コンパイル用ランタイムは、utf8でaxファイルを生成し、hsp3Wに実行させます。
使い方は、↓
スクリプトに
「#runtime "hsp3Wcmp"」と書き、
実行したいhspファイルのフルパスをダブルクォーテーションで囲んで
起動オプションの先頭へ追加し、実行してください。
また、よろしくお願いします。