- 195 名前:193 [2007/11/17(土) 18:51:26 ]
- lstrlen()でも同じ症状になるんですが、
例えば ANSIビルド版のプログラムでは lstrlen(TEXT("hello") = 5 lstrlen(TEXT("こんにちは")) = 10 ですが UNICODE版では lstrlen(TEXT("hello") = 10 lstrlen(TEXT("こんにちは")) = 10 となります。 確認してみましたが、GetWindowTextLengthでも同じ結果でした。 バイト数は分かりますが、文字数が分からないに思うんですが・・ 確かにメモリ確保にはバイト数だけ分かればいいんですが、そもそもGetWindowTextLengthって文字列の長さ(=文字数) を取得する関数という認識で間違いないですよね? UNICODE版は、文字数とバイト数(文字数×2)に何の不思議も無いんですが ANSI版は、文字数とバイト数がバラバラというか。。 ダブルバイト文字とシングルバイト文字が一緒くたでわかりにくいというか・・
|

|