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