<div dir="ltr">Hi,<div>sorry, but not sure what you mean with '<span style="font-family:arial,sans-serif;font-size:13px">cabalizing the code and seeing the flags its passing'.  </span></div><div><br><div><div>cabal-install version 1.16.0.2</div>
<div>using version 1.16.0 of the Cabal library</div></div><div><br></div><div>ghc: version 7.6.3<br></div><div><br></div><div>after looking a bit more I can see that the ffi call does what it should do, but it crashes right after that. As mentioned before in ghci everything runs fine.</div>
</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Sun, Mar 16, 2014 at 11:20 PM, Carter Schonwald <span dir="ltr"><<a href="mailto:carter.schonwald@gmail.com" target="_blank">carter.schonwald@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">what version of ghc and cabal?<div><br></div><div>have you tried cabalizing the code and seeing what flags its passing? is it possible you're passing the wrong flags?</div>
</div><div class="gmail_extra">

<br><br><div class="gmail_quote"><div><div class="h5">On Sun, Mar 16, 2014 at 5:21 PM, Miro Karpis <span dir="ltr"><<a href="mailto:miroslav.karpis@gmail.com" target="_blank">miroslav.karpis@gmail.com</a>></span> wrote:<br>
</div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div class="h5">

<div dir="ltr">thanks. Have tried with safe - still seg-fault.</div><div><div><div class="gmail_extra"><br><br><div class="gmail_quote">On Sun, Mar 16, 2014 at 5:09 PM, Vagif Verdi <span dir="ltr"><<a href="mailto:vagif.verdi@gmail.com" target="_blank">vagif.verdi@gmail.com</a>></span> wrote:<br>



<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Notice that i have "safe" in my foreign import ccall. This makes it safe to run in threaded mode. Did you try that?<br>



<br>Are you on windows?<div><br><br>On Sunday, March 16, 2014 1:40:48 AM UTC-7, Miro Karpis wrote:</div><blockquote class="gmail_quote" style="margin:0;margin-left:0.8ex;border-left:1px #ccc solid;padding-left:1ex">
<div><div dir="ltr">thank you very much - I have tried also that but got the the same behaviour (seg fault)<div><br></div><div>cheers,</div><div>m.</div></div></div><div><div><div><br><br><div class="gmail_quote">
On Sun, Mar 16, 2014 at 7:45 AM, Vagif Verdi <span dir="ltr"><<a>vagif...@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">I do not think i can help you, but my FFi to functions with similar signature looks like this:<br><br>C definition:<br>




<br>PDFLIB_API int PDFLIB_CALL<br>PDF_begin_document(PDF *p, const char *filename, int len, const char *optlist);<br><br>haskell FFI:<br><br>c_beginDocument :: Pdf -> String -> String -> IO Int<br>c_beginDocument pdf a2 a3 =<br>




  withCString a2 $ \a2' -><br>  withCString a3 $ c_beginDocument'_ pdf a2' 0<br><br>foreign import ccall safe "Pdflib.chs.h PDF_begin_document" c_beginDocument'_ :: Pdf -> Ptr CChar -> CInt -> Ptr CChar -> IO Int<br>




<br>The difference as you see, i'm using withCString to convert from ahskell to C and i'm passing 0 as the string size.<div><div><br><br><br>On Friday, March 14, 2014 3:24:23 PM UTC-7, Miroslav Karpis wrote:<blockquote class="gmail_quote" style="margin:0;margin-left:0.8ex;border-left:1px #ccc solid;padding-left:1ex">




<div style="font-size:14px;font-family:Calibri,sans-serif;word-wrap:break-word"><div><span style="font-family:Calibri;font-size:medium">Hi, please can you help me with following?</span><div style="font-family:Calibri;font-size:medium">




<br></div><div style="font-family:Calibri;font-size:medium">I have a call to an external dll (via ffi) which if executed from ghci works fine. </div><div style="font-family:Calibri;font-size:medium">If I compile my code with 'ghc -o fm Mycode.hs -L. -lextdll' and run it I get  'Segmentation fault/access violation in generated code'.</div>




<div style="font-family:Calibri;font-size:medium"><div><br></div><div><br></div><div><br></div><div><div>main = do</div><div><span style="white-space:pre-wrap">  </span>let param = "FilePath"</div><div><span style="white-space:pre-wrap"> </span>let value = "C:/dev/misc/haskell/services/<u></u><u></u>FM"</div>




<div><span style="white-space:pre-wrap">  </span>result <- liftIO $ FM.setmodulestring param value</div><div><span style="white-space:pre-wrap">     </span>return "done"</div></div><div><br></div><div><div style="font-family:Calibri,sans-serif;font-size:14px">




setmodulestring :: String -> String -> IO CInt</div><div style="font-family:Calibri,sans-serif;font-size:14px">setmodulestring param value = do</div><div style="font-family:Calibri,sans-serif;font-size:14px"><span style="white-space:pre-wrap">   </span>let cParamLength = fromIntegral $ length param ::CInt</div>




<div style="font-family:Calibri,sans-serif;font-size:14px"><span style="white-space:pre-wrap">  </span>    cValueLength = fromIntegral $ length value ::CInt</div><div style="font-family:Calibri,sans-serif;font-size:14px">



<span style="white-space:pre-wrap">     </span>    setVarInArray = (-1)::CInt</div>
<div style="font-family:Calibri,sans-serif;font-size:14px"><span style="white-space:pre-wrap">  </span>alloca $ \cParam -> do</div><div style="font-family:Calibri,sans-serif;font-size:14px"><span style="white-space:pre-wrap">        </span>alloca $ \cValue -> do</div>




<div style="font-family:Calibri,sans-serif;font-size:14px"><span style="white-space:pre-wrap">          </span>result <- c_setmodulestring cParam cParamLength cValue cValueLength setVarInArray</div><div style="font-family:Calibri,sans-serif;font-size:14px">




<span style="white-space:pre-wrap">             </span>return result</div></div></div><div style="font-family:Calibri;font-size:medium"><br></div><div style="font-family:Calibri;font-size:medium">If I try also with following, the behaviour is the same:</div>




<div style="font-family:Calibri;font-size:medium"><br></div><div style="font-family:Calibri;font-size:medium"><div>setmodulestring2 :: String -> String -> IO CInt</div><div>setmodulestring2 param value = do</div><div>




<span style="white-space:pre-wrap">     </span>cParam <- newCWString param</div><div><span style="white-space:pre-wrap">   </span>cValue <- newCWString value</div><div><span style="white-space:pre-wrap">   </span>let cParamLength = fromIntegral $ length param ::CInt</div>




<div><span style="white-space:pre-wrap">  </span>    cValueLength = fromIntegral $ length value ::CInt</div><div><span style="white-space:pre-wrap">    </span>    setVarInArray = (-1)::CInt </div><div><span style="white-space:pre-wrap">  </span>result <- c_setmodulestring cParam cParamLength cValue cValueLength setVarInArray</div>




<div><span style="white-space:pre-wrap">  </span>free cParam</div><div><span style="white-space:pre-wrap">      </span>free cValue</div><div><span style="white-space:pre-wrap">      </span>return res</div></div><div style="font-family:Calibri;font-size:medium">




<br></div><div style="font-family:Calibri;font-size:medium"><br></div><div style="font-family:Calibri;font-size:medium">Any comments/ideas more than appreciated.</div><div style="font-family:Calibri;font-size:medium"><br>




</div><div style="font-family:Calibri;font-size:medium">Cheers,</div><div style="font-family:Calibri;font-size:medium">Miro</div></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div>




<div><br></div></div>
</blockquote></div></div></div></blockquote></div><br></div>
</div></div></blockquote></div></blockquote></div><br></div>
</div></div><br></div></div><div class="">_______________________________________________<br>
Haskell-Cafe mailing list<br>
<a href="mailto:Haskell-Cafe@haskell.org" target="_blank">Haskell-Cafe@haskell.org</a><br>
<a href="http://www.haskell.org/mailman/listinfo/haskell-cafe" target="_blank">http://www.haskell.org/mailman/listinfo/haskell-cafe</a><br>
<br></div></blockquote></div><br></div>
</blockquote></div><br></div>