|
h-tom です。
>ご推察の通り、dllfuncに独自形式を渡すのは、hmjre.dllとtkinfo.dllだけにな
>っています。
>通常のDLLの場合は、独自形式を渡したら意味がわからないことになってしまう
>ので、Unicodeを取り除いた形式に変換しています。
了解です。
最近、hmonig.dllの対応もあり、unicodeでいろいろやっているのですが、
ちょっと気になったので、確認してみました。
ついでに、charindex_to_byteindexについて、
ヘルプによると、
> 以下の例で、"□"がUnicodeの全角文字だとしたら、4を返します。
> "□"がUnicodeの半角文字だとしたら、5を返します。
>
> #a = charindex_to_byteindex( "□abcde", 2 );
となっていますが、
以下のマクロだと、同じ数字が返ってきます。
何か、勘違いしてますかね?
// 0 12345 Charindex
// 0 12345 文字位置
// 0123 45678 バイト位置
$line1 = "\u0032abcde"; //(2)
// 0 1 23456 Charindex
// 0 12345 文字位置
// 0123 45678 バイト位置
$line2 = "\u9FB3abcde"; //(2)
#l1 = strlen($line1);
#l2 = strlen($line2);
#a1 = charindex_to_byteindex( $line1, 2 );
#a2 = charindex_to_byteindex( $line2, 2 );
message "#a1 = " + str(#a2) + " #a2 = " + str(#a2) + " \n" +
"#l1 = " + str(#l2) + " #l2 = " + str(#l2);
endmacro;
---------------------------
秀丸エディタ
---------------------------
#a1 = 4 #a2 = 4
#l1 = 7 #l2 = 7
---------------------------
OK
---------------------------
|
|