Hi,<br><br>I am new to Haskell and I need to call a c function by loading dynamic link library in Haskell. I started with very simple code to create a dll in visual studio 2008 and then trying to load it in haskell. I am listing here the steps I follwed to achieve this:<br>

<br><b>Step 1: </b><br>My c++ code(HelloWorld.cpp) looks like this:<br><br><span style="color:rgb(255,0,0)">__declspec(dllexport) int doubleMe(int a)</span><br style="color:rgb(255,0,0)"><span style="color:rgb(255,0,0)">{</span><br style="color:rgb(255,0,0)">

<span style="color:rgb(255,0,0)">    return 2*a;</span><br style="color:rgb(255,0,0)"><span style="color:rgb(255,0,0)">}</span><br><br>I created the dll using following command:<br><span style="color:rgb(255,0,0)">cl /D_USRDLL /D_WINDLL HelloWorld.cpp  /link  /dll /out:LoadDLL.dll</span><br>

<br><b>Step 2:</b><br>My Haskell code(Main.hs) looks like this:<br><br><span style="color:rgb(255,0,0)">{-# LANGUAGE ForeignFunctionInterface #-}</span><br style="color:rgb(255,0,0)"><span style="color:rgb(255,0,0)">module Main where</span><br style="color:rgb(255,0,0)">

<span style="color:rgb(255,0,0)">import Foreign</span><br style="color:rgb(255,0,0)"><span style="color:rgb(255,0,0)">import Foreign.C</span><br style="color:rgb(255,0,0)"><br style="color:rgb(255,0,0)"><span style="color:rgb(255,0,0)">foreign import ccall &quot;LoadDLL doubleMe&quot; twice :: CInt -&gt; IO (CInt)</span><br style="color:rgb(255,0,0)">

<br style="color:rgb(255,0,0)"><span style="color:rgb(255,0,0)">main = do </span><br style="color:rgb(255,0,0)"><span style="color:rgb(255,0,0)">  let x = 4</span><br style="color:rgb(255,0,0)"><span style="color:rgb(255,0,0)">  y &lt;- twice x     </span><br style="color:rgb(255,0,0)">

<span style="color:rgb(255,0,0)">  print y </span><br style="color:rgb(255,0,0)"><br>I am compling haskell code using following command:<br><span style="color:rgb(255,0,0)">ghci Main.hs -L. -lLoadDLL</span><br><br>I am finally getting the following error:<br>

<br>During interactive linking, GHCi couldn&#39;t find the following symbol:<br>  doubleMe<br>This may be due to you not asking GHCi to load extra object files,<br>archives or DLLs needed by your current session.  Restart GHCi, specifying<br>

the missing library using the -L/path/to/object/dir and -lmissinglibname<br>flags, or simply by naming the relevant files on the GHCi command line.<br>Alternatively, this link failure might indicate a bug in GHCi.<br>If you suspect the latter, please send a bug report to:<br>

  <a href="mailto:glasgow-haskell-bugs@haskell.org">glasgow-haskell-bugs@haskell.org</a><br><br><br>Please help me in identifying the mistake I am doing. If possible please let me know the exact steps to be followed to solve this issue. <br>

<br>Thank you so much in advance,<br>Regards,<br>Rajendra<br><br>