I am trying to use a VB6 dll created by another programmer from Ruby.
To see what was I opened it in Visual Studio's object browser. It has
a series of classes with their methods and properties. I want to acess
the Load method in the SalesContract class. Here's my code (which is
probably wrong)
C:/Data/Projects/Smd_Ruby/testdll.rb:2:in `initialize':
GetProcAddress: SalesContract::Load or SalesContract::LoadA
(RuntimeError)
from C:/Data/Projects/Smd_Ruby/testdll.rb:2:in `new'
from C:/Data/Projects/Smd_Ruby/testdll.rb:2
I'm not sure that this is even possible. Any help would be greatly
appreciated.
I haven't tried this from Ruby, but VB6 DLLs are actually "ActiveX" or
COM DLLs, so you should probably be trying to talk to them using the
Win32OLE library.
HTH,
Mike
···
On Aug 29, 2:06 pm, "lrleb...@gmail.com" <lrleb...@gmail.com> wrote:
I am trying to use a VB6 dll created by another programmer from Ruby.
To see what was I opened it in Visual Studio's object browser. It has
a series of classes with their methods and properties. I want to acess
the Load method in the SalesContract class. Here's my code (which is
probably wrong)
C:/Data/Projects/Smd_Ruby/testdll.rb:2:in `initialize':
GetProcAddress: SalesContract::Load or SalesContract::LoadA
(RuntimeError)
from C:/Data/Projects/Smd_Ruby/testdll.rb:2:in `new'
from C:/Data/Projects/Smd_Ruby/testdll.rb:2
I tried registering the dll and using win32ole but didn't have any
luck.
Here's the code
require 'win32ole'
smd = WIN32OLE.new('SMDClient')
Here's the error message
C:/Data/Projects/Smd_Ruby/testdll.rb:4:in `initialize': unknown OLE
server: `SMDClient' (WIN32OLERuntimeError)
HRESULT error code:0x800401f3
Invalid class string from C:/Data/Projects/Smd_Ruby/testdll.rb:
4:in `new'
from C:/Data/Projects/Smd_Ruby/testdll.rb:4
···
On Aug 29, 8:27 am, Mike Woodhouse <mikewoodho...@gmail.com> wrote:
On Aug 29, 2:06 pm, "lrleb...@gmail.com" <lrleb...@gmail.com> wrote:
> I am trying to use a VB6 dll created by another programmer from Ruby.
> To see what was I opened it in Visual Studio's object browser. It has
> a series of classes with their methods and properties. I want to acess
> the Load method in the SalesContract class. Here's my code (which is
> probably wrong)
> C:/Data/Projects/Smd_Ruby/testdll.rb:2:in `initialize':
> GetProcAddress: SalesContract::Load or SalesContract::LoadA
> (RuntimeError)
> from C:/Data/Projects/Smd_Ruby/testdll.rb:2:in `new'
> from C:/Data/Projects/Smd_Ruby/testdll.rb:2
I haven't tried this from Ruby, but VB6 DLLs are actually "ActiveX" or
COM DLLs, so you should probably be trying to talk to them using the
Win32OLE library.