- 327 名前:デフォルトの名無しさん mailto:sage [2008/12/13(土) 10:27:54 ]
- >>322
ruby19 -rwin32api -e "Win32API.new('user32.dll','MessageBoxW','ippi','i').call(0,('あいうえおかきくけこ').encode('utf-16le'),'メッセージボックス'.encode('utf-16le'),0)" でMessageBoxを表示させると確かに後ろにごみがつきますね ワイドキャラクタって文字サイズ分の終端記号が必要なのか Win32APIやdlでは文字列の引数を pack('p')でポインタに変換してるようなので UTF16やUTF32をpack('p')するときは終端記号が文字幅分付加されればいいのですかね とりあえず、自前で終端記号をつけておけば動きますけど ruby19 -rwin32api -e "Win32API.new('user32.dll','MessageBoxW','ippi','i').call(0,('あいうえおかきくけこ').encode('utf-16le')<<0,'メッセージボックス'.encode('utf-16le')<<0,0)"
|

|