win32/resolv.rb: call rb_w32_osid
* ext/win32/lib/win32/resolv.rb: call rb_w32_osid instead of direct GetVersionExA API. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61895 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
f729089f44
commit
1c98a41ae3
@ -42,19 +42,19 @@ begin
|
|||||||
rescue LoadError
|
rescue LoadError
|
||||||
end
|
end
|
||||||
|
|
||||||
nt = Module.new do
|
if [nil].pack("p").size <= 4 # 32bit env
|
||||||
break true if [nil].pack("p").size > 4
|
begin
|
||||||
extend Importer
|
f = Fiddle
|
||||||
dlload "kernel32.dll"
|
osid = f::Handle.new["rb_w32_osid"]
|
||||||
getv = extern "int GetVersionExA(void *)", :stdcall
|
rescue f::DLError # not ix86, cannot be Windows 9x
|
||||||
info = [ 148, 0, 0, 0, 0 ].pack('V5') + "\0" * 128
|
else
|
||||||
getv.call(info)
|
if f::Function.new(osid, [], f::TYPE_INT).call < 2 # VER_PLATFORM_WIN32_NT
|
||||||
break info.unpack('V5')[4] == 2 # VER_PLATFORM_WIN32_NT
|
|
||||||
end
|
|
||||||
if not nt
|
|
||||||
require_relative 'resolv9x'
|
require_relative 'resolv9x'
|
||||||
# return # does not work yet
|
return
|
||||||
else
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
module Win32
|
module Win32
|
||||||
#====================================================================
|
#====================================================================
|
||||||
# Windows NT
|
# Windows NT
|
||||||
@ -146,4 +146,3 @@ module Win32
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user