On Tuesday, 12 July 2016 at 15:13:02 UTC, Adam D. Ruppe wrote:
On Tuesday, 12 July 2016 at 15:09:26 UTC, Adam Sansier wrote:
I marked the interface extern(C++) so it's a C++ style interface.
 The first field of a COM object is a pointer to its vtable.

If it is a COM interface, you should make it a COM interface by inheriting from IUnknown.

http://dlang.org/spec/interface.html#com-interfaces

Obviously... doesn't help.

There is some weirdness with the vtable.

In the C++ version it is a simple list of void*'s starting at offset 0. In the D version I haven't figured out what is going on yet. Might just be a simple mistake on my part but something seems aloof. I will continue to work on it, it is difficult without being able to really see what is going on through proper debugging support though and not knowing how D does things differently than C++ under the hood.





Reply via email to