Temporary fix to trying to put a pointer in a DWORD

Shachar Shemesh wine-devel at shemesh.biz
Sun Oct 17 16:37:57 CDT 2004


Vincent Béron wrote:

>Besides the fact that HIDWORD and LODWORD (typo in LODDWORD) do not
>exist,
>
Yes, I was extrapolating on existing macros for readability.

> it looks fine as long as you don't actually compile it.
>
>Writing those two and compiling yields the error "initializer element is
>not constant".
>  
>
Yes. You are right. If you try to cast them to "unsigned long long", you 
get the compiler to reveal the true problem:

> keyboard.c:86: warning: initializer element is not computable at load time

Which is, I'm afraid, without solution. The compiler is not smart enough 
to understand that the cast (or a shift of 32 bits) is not really a 
mathematical operation, and will refuse to do it if it doesn't know the 
exact value at compile time. I tried doing the same thing with pointer 
arithmetics, but to no avail (the cast fails). I'm afraid this one 
bested me. I don't see a clean solution to this one.

          Shachar

-- 
Shachar Shemesh
Lingnu Open Source Consulting ltd.
http://www.lingnu.com/




More information about the wine-devel mailing list