lrlebron@gmail.com
8/29/2007 1:42:00 PM
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)
>
> > require 'Win32API'
> > @ops = Win32API.new('SMD Client.dll','SalesContract::Load','I','P')
>
> > Here's the error message I'm getting
>
> > 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.
>
> HTH,
>
> Mike- Hide quoted text -
>
> - Show quoted text -
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