Ruby 1.9: Displaying a MessageBox Using the Windows API

On Ruby on Windows there´s a fantastic article on Displaying a MessageBox Using the Windows API. This working fine on Ruby 1.8, but unfortunately it is resulting in an error like this when being executed with Ruby 1.9:

message_box.rb:20:in `[]': wrong number of arguments(2 for 1) (ArgumentError)
   from message_box.rb:20:in `message_box'
   from message_box.rb:25:in `'

Luckily I´ve found a solution on the Ruby-Forum: Ruby 1.9.0 problem with DL.dlopen, in short, replace lines 20 + 21 of the example code by the following:

msgbox = DL::CFunc.new(user32['MessageBoxA'], DL::TYPE_LONG, 'MessageBox')
r, rs = msgbox.call([0, txt, title, 0].pack('L!ppL!').unpack('L!*'))

Dieser Beitrag wurde unter Programming abgelegt und mit , , , , , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.

Ein Kommentar zu Ruby 1.9: Displaying a MessageBox Using the Windows API

  1. RubyLearner sagt:

    Thank you for your post!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.