Microsoft KB Archive/104041

From BetaArchive Wiki
< Microsoft KB Archive
Revision as of 15:03, 18 July 2020 by 3155ffGd (talk | contribs) (importing KB archive)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
Knowledge Base


FIX: Functions Exported Incorrectly in MASM 6.1 WINDLL Sample

Article ID: 104041

Article Last Modified on 10/13/2003



APPLIES TO

  • Microsoft Macro Assembler 6.1 Standard Edition
  • Microsoft Macro Assembler 6.1a



This article was previously published under Q104041

SYMPTOMS

The SYSDATA.EXE sample program supplied with the Microsoft Macro Assembler (MASM) versions 6.1 and 6.1a displays incorrect data when run. (This assumes you have already successfully built SYSINFO.DLL using the provided makefile, SYSINFO.MAK.)

CAUSE

SYSDATA.EXE was built with a different import library than the one created from the SYSINFO files shipped with MASM. Therefore, SYSDATA.EXE does not correctly call the functions within SYSINFO.DLL, which causes the program to display incorrect data.

RESOLUTION

There are two solutions (described below) to the problem. If you have the Microsoft Windows Software Development Kit (SDK), you can choose either solution. The SDK is relevant because RC.EXE is required to build SYSDATA.EXE. RC.EXE is shipped with the SDK and is not included with MASM.

  • If you have the SDK, you can rebuild SYSDATA.EXE using SYSDATA.MAK. This uses the import library produced from building SYSINFO.DLL--SYSINFO.LIB. When you run the rebuilt SYSDATA.EXE, the correct data is displayed.
  • If you do not have the SDK, you need to first modify SYSINFO.DEF so that it resembles the following:

          EXPORTS
                  GetSysTime   @1
                  GetSysDate   @2
                  GetSysInfo   @3
                  WEP          @4   RESIDENTNAME
                            

    After making the changes, rebuild SYSINFO.DLL using SYSINFO.MAK. When you then run SYSDATA.EXE, it will correctly reference the functions within the rebuilt SYSINFO.DLL and display the correct data.


STATUS

Microsoft has confirmed this to be a problem in MASM version 6.1, and 6.1a. This problem was corrected in MASM version 6.11.


Additional query words: 6.10 6.10a

Keywords: kbfix KB104041