From: "U.Nakamura" Date: 2004-04-08T11:03:37+09:00 Subject: [ruby-list:39511] Re: Win32API, GetUserName こんにちは、なかむら(う)です。 都合により引用順を変えます。 In message "[ruby-list:39510] Win32API, GetUserName" on Apr.08,2004 10:53:32, wrote: | callの第2引数はMSDNで「第1引数が指すバッファの最大サイズをTCHAR単位で | 保持している、 1個の変数へのポインタ」となっており、 | Unicode(UTF-8?、UCS-2?)を意識した文字列を与えないとだめなのでしょうか。 そういう話じゃなくて、数値へのポインタを与える必要があります。 数字を文字列化したものを渡してもダメです。 というわけで、こんなとこですかね。 | require 'Win32API' | name = "" | begin | api = Win32API.new('advapi32', 'GetUserName', %w(p p), 'i') | name = "\0" * 100 # Windowsではユーザー名は最大256まで許容されている size = [99].pack('L') api.call(name, size) | api = nil | name.sub!(/\0.*/, "") | rescue | end | p name それでは。 -- U.Nakamura