32_UTF-16文字列操作時注意点.hsp

sample\hspint64.dll\32_UTF-16文字列操作時注意点.hsp » Plain Format

// hsp3_64.as → hspint64.as の順にインクルードしてください。
// また、varptr や callfunc をマクロで置き換えている都合上、
// hspint64.as のインクルードは なるべく上に書いておくことをお勧めします。
// なお、varptr や callfunc をマクロの置換をしない場合は、以下のコメントを解除してください。
// #define CANCEL_UNDEF_HSPINT64 

#include "hsp3_64.as"
#include "hspint64.as"

// ----------------------------------------------------------
// 文字列操作時注意点
// ----------------------------------------------------------

// ----------------------------------------------------------
; [ありがちな失敗例]
; UTF-16型文字列変数を確保したが、
; 格納する際に、UTF-8 文字列を入れてしまっている。
swdim buf, 1024
buf = "あいうえお"

; UTF-16 のまま取り扱うには、以下のようにする。
swdim buf, 1024
buf = _T("あいうえお")

swdim buf, 1024
buf += "あいうえお"         // 連結すれば、UTF-16 のまま

// ----------------------------------------------------------
; [UTF-16型文字列変数の初期確保バッファは128byteです]

sdim buf
mes "sdim  初期サイズ = " + varsize(buf)

swdim buf
mes "swdim 初期サイズ = " + varsize(buf)
// ----------------------------------------------------------