Ffi: Can't get dll to work

Hi,

I want to use PICkit’s dll (PICkitS.dll) from Ruby on Windows XP, but I
doesn’t succeed to get it done. I’d greatly appreciate any help.

I think, ffi would be usefull.

Documentation of PICkitS.dll says, for example:

Simple Function call:

PICkitS.Basic.Initialize_PICkitSerial()

Returns: True if successful, False if not
[…]

More complex Function call:

PICkitS.Basic.Send_SPI_Receive_Cmd(byte
p_num_bytes_to_read, ref byte[] p_data_array, bool
p_first_cmd, bool p_last_cmd, ref string p_script_view)

Returns: True if successful, False if not
[…]

I tried for example this:

require ‘ffi’
module PicKit
extend FFI::Library
ffi_lib ‘D:\e\Microchip\PICkit Serial Analyzer\PICkitS.dll’
ffi_convention :stdcall
attach_function :Initialize_PICkitSerial, [], :void
end

PicKit::Basic.Initialize_PICkitSerial([:pointer, nil])

This returns the following error:

ruby18_mingw/lib/ruby/gems/1.8/gems/ffi-1.3.0-x86-mingw32/lib/ffi/library.rb:251:in
`attach_function’: Function ‘Initialize_PICkitSerial’ not found in
[D:\e\Microchip\PICkit Serial Analyzer\PICkitS.dll] (FFI::NotFoundError)

I’ve installed:
ruby 1.8.7 (2009-06-12 patchlevel 174) [i386-mingw32]
and
ruby 1.9.3p327 (2012-11-10) [i386-mingw32]
on
Window XP

I do not know C.

Best regards,
Axel