Microsoft KB Archive/69805

PRWIN9103026: One Cause of FatalExit 0x0403 ID Number: Q69805

3.00 WINDOWS buglist3.00 fixlist3.10

Summary:

PROBLEM ID: WIN9103026

SYMPTOMS When running an application under the debugging version of Windows version 3.0, Windows reports fatal exit 0x0403 “invalid ordinal reference.”

CAUSE An exported function in a Windows dynamic-link library (DLL) was declared with the RESIDENTNAME attribute in the DEF file associated with the DLL.

RESOLUTION Microsoft has confirmed this to be a problem in Windows version 3.0. Either of the following will resolve this problem:

- Do not associate the RESIDENTNAME attribute with any exported function other than the Windows exit procedure (WEP) of the DLL. The WEP MUST be declared with the RESIDENTNAME attribute.

-or-

- The application can declare links to the functions of the DLL by using the IMPORTS section of its module definition file. When this is done, it is not necessary to use the IMPLIB utility.

For example, a DLL's module definition file, DLL.DEF, contains the following text:

EXPORTS zippo  @2      RESIDENTNAME harpo  @3      RESIDENTNAME

An application can avoid this problem by using the following text in its module definition file, APP.DEF:

IMPORTS zippo  = mydll.2 harpo  = mydll.3 This problem was corrected in Windows version 3.1.

Additional reference words: 3.00 SR# G910108-2