Lookup rules in inline asm are a little
different. All struct members are included in the search, regardless of
protection attributes, scoping, etc. This sounds a little wierd, but is
intentional. It's fallout from trying to
Heh heh heh, I did say the word "Wierd" in the
subject of this post.
emulate MASM syntax, and MASM has little concept
of structs, scoping, etc. Secondly, all struct members resolve to simply an
integer representing the offset of that member from the start of the struct.
This is so that it can be used as an offset to whatever 'this' value is in the
index register:
mov EAX, foo[ECX]
I hope this clears up the confusion.
-Walter
I did figured it out (see the other post).
Basically maintaining "source level compatibility"
across compilers and cpu target is never easy the
moment inline assemblies are used.