don't get a correct memory address at a getter Method
Nick Rudnick <[email protected]> Fri, 27 Aug 2010 23:12:06 +0200
| Newsgroups | gmane.comp.lang.haskell.ffi |
|---|---|
| Message-ID | <[email protected]> |
Hi,
being new to the FFI, I hope this might have an easy solution:
The following (GHC 6.12.1),
---------------------- C++ lib
class A {
public:
B* getB(){ B* ptr= &b; cerr << "C: " << << endl; return ptr; }
private:
B b;
}
---------------------- C wrapper
B* A_getB(A* a){ a->getB(); }
---------------------- Haskell lib
foreign import ccall unsafe "A_getB"
a_getB:: APtr-> IO BPtr
...
getB = a_getB
---------------------- Haskell app
b <-getB a
putStrLn ("HS: "++show b)
----------------------
leads to deviated pointer addresses, e.g.,
...
C: 0x19bc808
HS: 0x00007fa92f812c80
...
Do you know a solution? Am I doing something wrong?
Thanks in advance,
Nick