From: usa@... Date: 2016-11-28T11:57:14+00:00 Subject: [ruby-dev:49889] [Ruby trunk Bug#12987] Win32 API.rb can not call function without argument. Issue #12987 has been updated by Usaku NAKAMURA. For workaround, you can use '' instead of '0'. ---------------------------------------- Bug #12987: Win32 API.rb can not call function without argument. https://bugs.ruby-lang.org/issues/12987#change-61773 * Author: Masahiro Kitajima * Status: Open * Priority: Normal * Assignee: * ruby -v: * Backport: 2.1: UNKNOWN, 2.2: UNKNOWN, 2.3: UNKNOWN ---------------------------------------- In Win32API.rb, it is not possible to call a function without arguments. I could avoid it for the time being if I did the following (against trunk). ~~~ diff --git a/ext/win32/lib/Win32API.rb b/ext/win32/lib/Win32API.rb index d03ecc1..946be3e 100644 --- a/ext/win32/lib/Win32API.rb +++ b/ext/win32/lib/Win32API.rb @@ -17,6 +17,7 @@ class Win32API def initialize(dllname, func, import, export = "0", calltype = :stdcall) @proto = [import].join.tr(WIN32_TYPES, DL_TYPES).sub(/^(.)0*$/, '\1') import = @proto.chars.map {|win_type| TYPEMAP[win_type.tr(WIN32_TYPES, DL_T + @proto = "" if @proto == "0" export = TYPEMAP[export.tr(WIN32_TYPES, DL_TYPES)] calltype = Fiddle::Importer.const_get(:CALL_TYPE_TO_ABI)[calltype] ~~~ -- https://bugs.ruby-lang.org/