Ann and Jason Edmeades wrote:
Have a look at dlls/quartz/pin.h I have emulated C++ style inheritance by creating a structure that is included at the start of every derived implementation and then constructing the vtable at compile time and linking to the base functions. If you wanted to do the same for d3d{8,9} and wined3d you would have to add each common function to the spec file.
I like the solutions of putting the structures in - thats a neat way of ensuring consistency...
constructing the vtable at compile time and linking to the base functions.
However, I think the vtbl issue is different - Dont you get away with constructing the vtbl because all subclasses are in the same C part, or have I missed something?
They are all part of the same interface, yes.
BTW I dont want to call cross shared library for inheritance, but I do want to call cross 'C' part in the same library, so hopefully shouldnt need to use the spec file.
Any thoughts? If not, I'll go for forwarding functions - painful, but not the end of the world.
Forwarding functions seem to be the only maintanable way of doing this.
Rob