Patrik Stridvall ps@leissner.se writes:
Of course potentially all types could teoretically be used so that would be VERY ugly...
In theory maybe, but in practice I think there are very few structures where this would be a problem.
Yes. None of the structures in mssip have this problem AFAICS.
So we can simply fix the alignment explicitly in these structures, either with padding or with __attribute__.
Yes. Thinking again. You can IIRC apply __attribute__((aligned(n))) to a specific field, you doesn't need to do it per type.
However the only easy way to dectect automatically where you should add it will be using something like below.
A nice thing to have would be a script that parses the headers and generates code to dump the size of all structures and the offsets of all their members. Then we can build that code under Windows and Winelib and compare the results.
It has been in my TODO list for quite some time. I just never got around to do it.
I'm sure it's a 10 minute hack for you to extend winapi_check to do this <g>
winapi_check can't currently parse data structures so I have to teach it that first. That will take a lot more time than 10 minutes...