From: jonty on
In view of ImageScience being currently broken on ruby 1.9 I thought it
would be a good idea to try and use FFI with FreeImage. And lo! this has
been tried last April, repositories on github.

http://github.com/adamsanderson/freeimage-ffi

Fine but none of the code I have tried work with the precompiled dll of
freeImage for windows.

This illustrates my problem:

require 'ffi'

module TestFreeImage
extend FFI::Library
ffi_lib 'FreeImage'
ffi_convention :stdcall
attach_function :getversion, :FreeImage_GetVersion , [], :char
end

version=TestFreeImage.getversion

puts "Version is #{version}"


Gives the following error:

`attach_function': Function 'FreeImage_GetVersion' not found in
[FreeImage] (FFI::NotFoundError)
from testimagescience.rb:7:in `<module:TestFreeImage>'
from testimagescience.rb:3:in `<main>'
>Exit code: 1


here is the header from freeimage.h

DLL_API const char *DLL_CALLCONV FreeImage_GetVersion(void);

When trying the freeimage-ffi tests I get the same error, incidentally I
had to hack that as it looks for freeimage.3 only. I changed like above
- it seems to be finding the dll ok.
(in windows/system32)

Can anyone shed light on this? I am not a C programmer