From: katonbo@... Date: 2016-11-28T11:24:42+00:00 Subject: [ruby-dev:49888] [Ruby trunk Bug#12987] Win32 API.rb can not call function without argument. Issue #12987 has been reported by Masahiro Kitajima. ---------------------------------------- Bug #12987: Win32 API.rb can not call function without argument. https://bugs.ruby-lang.org/issues/12987 * 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/