くだすれVB6.0以前(超初心者向け)
■ このスレッドは過去ログ倉庫に格納されています
0157デフォルトの名無しさん
2007/03/16(金) 11:25:18検証してやったよ。 APIのlstrlenを使って。
Dim s As String * 3,ss As String * 3
MsgBox lstrlen(s) :MsgBox lstrlen(ss)
この時点で変数sが初期化されていないので結果は0。
つまり、宣言時は何も確保されていない。
次に変数を初期化してバイト数を計測
s = vbNullString: ss = vbNullString
MsgBox lstrlen(s): MsgBox lstrlen(ss)
結果は共に3バイトを返す。よって、あの宣言は3バイトという意味。
最後に片方にVB規定のユニコードで全角と半角で3文字代入
s = "あいう": ss = "123"
MsgBox lstrlen(s): MsgBox lstrlen(ss)
結果はsが6バイト。ssが3バイト。
VBは変数に代入時に無言でコンバート処理を行うか、メモリ領域を拡張しているか
しているんじゃないの。
>>155
16進数と明示的に宣言している。
■ このスレッドは過去ログ倉庫に格納されています