PRB: Signed/Unsigned Mismatch Warning When Using MSCS ConstantsLast reviewed: March 19, 1998Article ID: Q182659 |
The information in this article applies to:
SYMPTOMSWhen building a project that uses "constants" defined for Microsoft Cluster Server, the compiler might report a signed or unsigned mismatch warning.
CAUSEThe values are defined in clusapi.h using enum instead of #define. Enum values are of type int, but the values are most often used as DWORD (unsigned long) parameters. If the high bit of the value is set, the compiler generates a warning.
RESOLUTIONThe values can be cast to a DWORD before assigning them to, or using them as, a DWORD. For example:
dwParam = (DWORD) CLUSTER_CHANGE_HANDLE_CLOSE; STATUSThis behavior is by design.
MORE INFORMATIONWhen the high bit of one value of an enum is set, the compiler considers the value to be negative. When the value is assigned to an unsigned variable, the compiler warns that some information (the "negativeness") is lost in the assignment. Enums are used instead of #define to make it easier for other languages to use the values from a generated type library. Version : WINDOWS:;WINNT:4.0 Platform : WINDOWS winnt Issue type : kbprb Solution Type : kbnofix |
================================================================================
© 1998 Microsoft Corporation. All rights reserved. Terms of Use. |