From: Paul Leonard Date: 2005-05-21T08:20:07+09:00 Subject: Re: Win32API question - PathAppend (in/out variable issue) 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