From D struct to C struct

qznc qznc at web.de
Sun Nov 17 14:25:53 PST 2013


On Sunday, 17 November 2013 at 22:11:02 UTC, Namespace wrote:
> Hello.
> I have some trouble with C interfacing.
> I have a C struct with an integer member and I want to wrap 
> this into a D template. But if I want to access the C API, I 
> have to convert the C struct with the type informations of the 
> D struct.
> Example: http://dpaste.dzfl.pl/e3d10755
>
> The question is: How can I write the ptr method? It is very 
> probable, that these conversion is often used, so the ptr 
> method should be fast and without many garbage. And If 
> possible, I want to avoid the GC / Heap.
> My current approach doesn't avoid the GC complete, but it 
> displace the problem: http://dpaste.dzfl.pl/449f663f
>
> Any further ideas how to solve that?

You cannot use the stack due to your API requirements, so only 
heap or data segment remains. I assume you cannot use static 
variables, so heap it is. You should look into Andreis proposed 
std.allocator to optimize your memory management.

http://forum.dlang.org/post/l4btsk$5u8$1@digitalmars.com


More information about the Digitalmars-d-learn mailing list