Passing opaque struct between functions/modules
Sarath Kumar
sarath at invalid.com
Thu Jan 24 01:34:05 PST 2013
On Wednesday, 23 January 2013 at 17:14:31 UTC, Ali Çehreli wrote:
> On 01/23/2013 08:33 AM, Sarath Kumar wrote:
>
> > Can someone please tell me the right way to pass an opaque
> object
> > between module's functions.
>
> I am assuming that you are interfacing with a C library. That
> library must have a D binding file. I am assuming that it is
> your libA.d:
>
>
> There is also a library that implements the struct and the
> functions. Although you would have it in the C library, here is
> a D module to imitate it:
>
> // libA_impl.d
> // These are presumably defined in a C library. Simply
> imitating it with this
> // D module
> extern (C)
> {
> struct Opaque
> {
> int i;
> double d;
> }
>
> Opaque* getObject()
> {
> return new Opaque(42, 1.5);
> }
>
> void doSomething(Opaque *)
> {}
> }
>
I don't know the contents of the struct as libA and libB are 3rd
party C libraries.
More information about the Digitalmars-d-learn
mailing list