There is a number of problems, I'm not sure which one you are encountering.
Here are some that I remember:

The sample C code doesn't shut down the ghc runtime properly when the  DLL is unloaded.  This causes  a timer interrupt to jump into the void.  This is easily fixed with a couple of more lines of C.

The ghc runtime installs handlers for various things that it shouldn't touch when used as a DLL.

  -- Lennart

On 6/19/07, Lewis-Sandy, Darrell <darrelll@amgen.com> wrote:

I am new to using the Haskell FFI, and have been trying to implement the example in section 11.6 of the GHC user's guide. 

 

I have finally gotten to the point where my dll compiles (there is a missing space in the mainDll.h code at line 4:12) using GHC 6.6.1, and used the declare statement to expose the "adder" function in Excel VBA.  My VBA Code is given below:

 

Private Declare Function adder Lib " adder.dll" Alias "adder@8" (ByVal x As Integer, ByVal y As Integer) As Integer

 

Private Sub test()

Debug.Print adder(1, 2)

End Sub

 

 

 

My problem is this:

The function works fine (the immediate window displays 3), but when I terminate Excel, I get an application error ("The instruction at … referenced memory at … . The memory could not be read.").  Does anyone else have any experience calling Haskell from VBA that might be relevant?


_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe