2009年3月2日月曜日

RubyのWin32APIとUNICODE

Ruby-1.9.1でWin32APIを使ってUNICODE文字列を渡す例。
#ほとんどRubyリファレンスマニュアルのコピペ。

#!/usr/local/bin/ruby
# -*- encoding: utf-8 -*-

require 'iconv'
require 'Win32API'

class Win32API
MB_OK = 0

@@messagebox = nil

def self.MessageBox(wnd, text, caption, type = MB_OK)
@@messagebox ||= Win32API.new('user32', 'MessageBoxW', %W(p p p i), 'i')
@@messagebox.call(wnd, text, caption, type)
end
end

a = Iconv.iconv('utf-16le', 'utf-8', 'やぁ')[0]
b = Iconv.iconv('utf-16le', 'utf-8', 'うあは??')[0]
Win32API.MessageBox(0, a, b)

0 件のコメント:

コメントを投稿