Hi all,
Ruby 1.8.2.
Windows XP Pro
I'm having a bit of an issue with an in/out variable with the
PathAppend() function. I have no problem when I use a C extension, but
when I used Win32API, I don't get the desired output. Here's the code:
# test.rb
require "Win32API"
PathAppend = Win32API.new("shlwapi","PathAppend","PP","L")
path = 'C:\foo'
PathAppend.call(path, 'bar')
p path # 'C:\foo', but expect 'C:\foo\bar'
I've tried padding 'path' and a few other tricks, but nothing has
worked. What am I doing wrong?
Regards,
Dan
Daniel -
This works:
require "Win32API"
MAX_PATH = 256
inbuf = Array.new.fill(0.chr,0..MAX_PATH-1).join
PathAppend = Win32API.new("shlwapi","PathAppend","PP","L")
path = 'C:\foo'
inbuf[0..path.length-1] = path
PathAppend.call(inbuf, 'bar'+ 0.chr)
puts inbuf.strip!
Returns:
C:\foo\bar
···
On Sat, 21 May 2005 05:40:15 +0900, Daniel Berger wrote:
Hi all,
Ruby 1.8.2.
Windows XP Pro
I'm having a bit of an issue with an in/out variable with the
PathAppend() function. I have no problem when I use a C extension,
but when I used Win32API, I don't get the desired output. Here's
the code:
# test.rb
require "Win32API"
PathAppend = Win32API.new("shlwapi","PathAppend","PP","L")
path = 'C:\foo'
PathAppend.call(path, 'bar')
p path # 'C:\foo', but expect 'C:\foo\bar'
I've tried padding 'path' and a few other tricks, but nothing has
worked. What am I doing wrong?
Regards,
Dan