[Win32utils-devel] WSAStartup failure

Daniel Berger djberg96 at gmail.com
Tue Feb 8 23:23:51 EST 2011


On Mon, Feb 7, 2011 at 11:02 PM, Heesob Park <phasis at gmail.com> wrote:
> Hi,
>
> 2011/2/8 Daniel Berger <djberg96 at gmail.com>:
>> Hi,
>>
>> I added the Windows::WSA module to windows-pr recently (it's in the latest
>> git repo). However, I can't seem to make WSAStartup work. I tried the
>> following bit of code, only to get "The Windows Sockets version requested is
>> not supported" on my Vista box.
>>
>> Is it really not supported on Vista? The docs say Win2k or later. Or is
>> there another issue?
>>
>> require 'windows/wsa'
>> require 'windows/error'
>> require 'windows/system_info'
>>
>> include Windows::WSA
>> include Windows::Error
>> include Windows::SystemInfo
>>
>> begin
>>  version = MAKEWORD(2,2)
>>  buffer = 0.chr * 532
>>  err = WSAStartup(version, buffer)
>>
>>  if err != 0
>>    puts "Oops: " + get_last_error(err)
>>  end
>> ensure
>>  WSACleanup()
>> end
>>
> The current definition of MAKEWORD and MAKELONG is wroing.
>
> Here is fixed version of MAKEWORD and MAKELONG.
>
> def MAKEWORD(a, b)
>      ((a & 0xff) | ((b & 0xff) << 8))
> end
> def MAKELONG(a, b)
>      ((a & 0xffff) | ((b & 0xffff) << 16))
> end

Ack, thanks. I'm pretty sure I copy/pasted this, so I'm assuming
there's a precedence issue. Ruby is *usually* the same as C, so I'm
somewhat surprised here.

Regards,

Dan


More information about the win32utils-devel mailing list