Knowledge Base

FIX: MIDL 2.0 Does Not Handle VAX Floating Point Numbers

Article ID: 129064

Article Last Modified on 3/7/2005


APPLIES TO


This article was previously published under Q129064

SYMPTOMS

RPC applications (client and server) built using MIDL 2.0 (shipped with Windows NT version 3.5) may get spurious characters or report memory violations when dealing with VAX floating point numbers.

RESOLUTION

There are two possible resolutions to this problem:
  • Use MIDL 1.0 (shipped with Windows NT version 3.1) to build RPC client and server applications.

    -or-
  • On the VAX side, use a compiler switch to make sure the application represents its floating point numbers in IEEE format.

STATUS

Microsoft has confirmed this to be a bug in the Microsoft products listed at the beginning of this article. This problem was corrected in Windows NT version 3.51.

MORE INFORMATION

Note that Microsoft RPC is binary compatible with DCE RPC. There are four types of representations for floating point numbers: IEEE, VAX, IBM, and CRAY. An application built using MIDL 1.0 can recognize IEEE and VAX representations but not IBM and CRAY. Applications built using MIDL 2.0 can recognize only IEEE representaion as mentioned above. Both, MIDL 1.0 and 2.0, use IEEE representations to send data.

Keywords: kbbug kbfix kbapi kbrpc kbnetwork kboswinnt351fix KB129064