S
Stephan Kämper
Hi all,
I'm trying to tie together some Ruby code with a DLL (let's call it
'one.dll') which in turn uses another DLL. That other DLL is Xerces, but
that shouldn't matter much.
Now, if both of the two DLLs are located in the same directory as the
Ruby code things work fine.
I do something like:
dl_name = DL.dlopen( "one.dll" )
version = dl_name[ "version_of_XY" , "s" ]
puts "Version is : #{ version.call }"
Now, they're DLLs after all and I'd like to put both of them in another
directory, e.g. 'libs'. In that case I'd write
dl_name = DL.dlopen( "libs/one.dll" )
version = dl_name[ "version_of_XY" , "s" ]
puts "Version is : #{ version.call }"
and get an error:
dll_test.rb:47:in `initialize': unknown error (RuntimeError)
from dll_test.rb:47:in `dlopen'
from dll_test.rb:47
However, if I move the 'secondary' DLL (Xerces in this case) back into
the directory of the Ruby program everything is fine again.
So, my question is: How can I tell DL and/or Ruby where to look for
'secondary' DLLs? Apparently I have to take care about some kind of path
I'd guess. But which one?
Any help is really appreciated.
Happy rubying
Stephan
I'm trying to tie together some Ruby code with a DLL (let's call it
'one.dll') which in turn uses another DLL. That other DLL is Xerces, but
that shouldn't matter much.
Now, if both of the two DLLs are located in the same directory as the
Ruby code things work fine.
I do something like:
dl_name = DL.dlopen( "one.dll" )
version = dl_name[ "version_of_XY" , "s" ]
puts "Version is : #{ version.call }"
Now, they're DLLs after all and I'd like to put both of them in another
directory, e.g. 'libs'. In that case I'd write
dl_name = DL.dlopen( "libs/one.dll" )
version = dl_name[ "version_of_XY" , "s" ]
puts "Version is : #{ version.call }"
and get an error:
dll_test.rb:47:in `initialize': unknown error (RuntimeError)
from dll_test.rb:47:in `dlopen'
from dll_test.rb:47
However, if I move the 'secondary' DLL (Xerces in this case) back into
the directory of the Ruby program everything is fine again.
So, my question is: How can I tell DL and/or Ruby where to look for
'secondary' DLLs? Apparently I have to take care about some kind of path
I'd guess. But which one?
Any help is really appreciated.
Happy rubying
Stephan