[Haskell-cafe] Re: FFI and Excel VBA

Simon Marlow simonmarhaskell at gmail.com
Mon Jun 25 07:45:17 EDT 2007


We don't recommend calling shutdownHaskell() from DllMain().  Some information here:

http://haskell.org/haskellwiki/GHC/Using_the_FFI#Debugging_Haskell_DLLs

It should be safe to call shutdownHaskell() (aka hs_exit()) *before* unloading a 
DLL, and before exiting the program.

Cheers,
	Simon

Lennart Augustsson wrote:
> 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 at amgen.com 
> <mailto:darrelll at 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 at 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 at haskell.org <mailto:Haskell-Cafe at haskell.org>
>     http://www.haskell.org/mailman/listinfo/haskell-cafe
> 
> 
> 
> ------------------------------------------------------------------------
> 
> _______________________________________________
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-cafe



More information about the Haskell-Cafe mailing list