You can try something like the code below. I don't know what ReturnCode
is, so the code below expects it is an integer. For any more complex type, you'll need to use [<Struct>]
attribute as in the answer referenced by A-Dubb.
type ReturnCode = int
[<System.Runtime.InteropServices.DllImport("something.dll")>]
extern ReturnCode GetParent(System.IntPtr inRef, System.IntPtr& outParentRef);
To call the function, you'd write something like this:
let mutable v = nativeint 10
let n = GetParent(nativeint 0, &v)
BTW: Could you also post a sample C code that implements the function in something.dll
? If yes, we could try running the solution before sending an answer...
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…