On Thursday, 4 August 2016 at 21:02:59 UTC, TencoDK wrote:
Hey,

I'm using DerelictSFML2 + CSFML, I have stuck on instantiating window.

derelict/window.d (binding from C):
struct sfWindow;

my_file.d:
sfWindow* sfmlWindow = null;
sfmlWindow = new sfWindow; // ???

This code snippet gives me:
Error: struct derelict.sfml2.window.sfWindow unknown size

How must I create stuctures from C bindings?

C structs can be created with new just like D structs as long as they have a definition. sfWindow is an 'opaque type', which, just like a forward reference in C or C++, can not be instantiated directly because they have no definition. The error gives you a good hint with 'unknown size'. Many C libraries work this way, hiding the implementation internally and exposing an opaque type in the public headers.

Reply via email to