投稿日 | : 2005/01/27(Thu) 13:37 |
投稿者 | : DODOON |
URL | : |
タイトル | : Re^2: RtlMoveMemoryの振る舞い |
返事ありがとうございます。
魔界の仮面弁士さん。いつもgoogleで検索すると
お名前がでて、参考にさせていただいています。
じかに、返答いただけて、うれしいです。
> (ちなみに VB.NET では、UTF-8 がベースになっているようです)
知りませんでした。
> 私は、ほとんどをVBに任せています。
やはり、それが正しいですよね。シーケンシャルファイルの時は
何も考えてなかったのですが、このような使い方をすると
きになってしまいました。
>
> APIでUnicodeを扱いたいなら、「String」ではなく、「Byte配列」を使って、
> Declare Sub UnicodeProc Lib "dllname" (ByRef X As Byte)
> Dim B() As Byte
> B = "あいうえお"
> Call UnicodeProc(B(0))
> のようにすれば、そのまま渡せますしね。
>
そのように、するのが一番確実ですね。
byvalでstring型で渡すのは何か気持ち悪いのです。
> 今では、殆どのOSが NTベースのもの(NT4, 2000, XP, 2003, ……)に
> なっていますが、以前は、いわゆる9x系のOS(95, 98, Me)が非常に
> 多く使われていました。
>
> そして9x系では、Unicode対応のAPIは僅かしかありません。
> ほとんどのAPIがANSI版のみです。(SendMessageAとか)
>
> 一方のNT系では、UnicodeエントリとANSIエントリの両方を持っていますので、
> API操作に関しては、ANSI版にあわせた設計の方が都合が良かったそうです。
>
勉強になります。
> # なお、VB.NET では、"Auto"キーワードによって、Unicode版/ANSI版の
> # いずれを使うべきか、自動判定する機構が設けられています。
.NETはまだ、使ったことないので、記憶に入れときます。
ありがとうございました。