From: chtototam@... Date: 2021-08-11T07:59:12+00:00 Subject: [ruby-core:104876] [Ruby master Bug#16116] ruby2.6.3(x86/x64) use win32ole could not new Object, return 0x80070057 Issue #16116 has been updated by krolchatina (Dmitry Kirillov). File ClassLibraryForRuby.zip added I have the same issue with Ruby 3.0.2 and .NET COM assemblies. The problem seems to be related to how the assembly is registered: If InprocServer32/Default contains the full path to mscoree.dll (C:\Windows\system32\mscoree.dll) there is no problem with WIN32OLE.new If InprocServer32/Default contains only mscoree.dll (which seems to be the default nowadays), WIN32OLE.new fails with "HRESULT error code:0x80070057 / The parameter is incorrect." I created a small assembly that demonstrates the problem. The assembly can be built using "dotnet build" command. ---------------------------------------- Bug #16116: ruby2.6.3(x86/x64) use win32ole could not new Object, return 0x80070057 https://bugs.ruby-lang.org/issues/16116#change-93235 * Author: whdukewu (Kewu DU) * Status: Closed * Priority: Normal * ruby -v: ruby 2.6.3p62 (2019-04-16 revision 67580) [i386-mingw32] * Backport: 2.5: UNKNOWN, 2.6: UNKNOWN ---------------------------------------- I build a RubyTest.dll by C#, In ruby2.2, I could use WIN32OLE.new to create ole object, but in the same system under ruby2.6.3, it failed to create ole object by WIN32OLE.new, is there any different between ruby 2.2 and ruby 2.6.3 in WIN32OLE? OS: Win7 Profressional SP1 64bit */////// Ruby 2.6.3 use WIN32OLE failed to load dll //////////* C:\Ruby26\bin>ruby -v ruby 2.6.3p62 (2019-04-16 revision 67580) [i386-mingw32] C:\Ruby26\bin>irb irb(main):001:0> require 'win32ole' => true irb(main):002:0> WIN32OLE.new('RubyTest.DllTest') Traceback (most recent call last): 6: from C:/Ruby26/bin/irb.cmd:31:in `
' 5: from C:/Ruby26/bin/irb.cmd:31:in `load' 4: from C:/Ruby26/lib/ruby/gems/2.6.0/gems/irb-1.0.0/exe/irb:11:in ` c:\TestTools\impeller\lib\Ruby\bin>ruby -v ruby 2.2.6p396 (2016-11-15 revision 56800) [i386-mingw32] */////// Ruby 2.2 use WIN32OLE success load dll //////////* c:\TestTools\impeller\lib\Ruby\bin>irb irb(main):001:0> require 'win32ole' => true irb(main):002:0> WIN32OLE.new('RubyTest.DllTest') @@@DllTest Constructor => # irb(main):003:0> ---Files-------------------------------- ClassLibraryForRuby.zip (1.55 KB) -- https://bugs.ruby-lang.org/ Unsubscribe: