ID Number: Q75245
1.10 | 1.10
MS-DOS | OS/2
buglist1.10
Summary:
PROBLEM ID: IMP9108001
SYMPTOMS
With the Microsoft IMPLIB utility version 1.1, calls into a DLL
fail to resolve to the correct function entry point when code or
data is added to the DLL at a later date.
CAUSE
When a DLL is written, function entry points can use the _export
keyword instead of being defined in the .DEF file. The DLL can then
be used as the input file for IMPLIB and an import library will be
created that can be used to link with the application. This was a
feature added with IMPLIB version 1.1 that shipped with Microsoft
C version 6.0.
The problem is that IMPLIB creates sequential ordinal values for
the functions in the order they are listed in the module. As a
result, if the order in which functions are defined is changed (for
example, adding another function at the beginning), all the ordinal
numbers that follow will also change. If the .EXE is not relinked
with the new import library, the ordinals in the .EXE will be
incorrect and the behavior of the application will be undefined.
STATUS
Currently the only workaround is to either relink your applications
whenever you modify your DLLs or use a .DEF file as input to
IMPLIB.
Microsoft has confirmed this to be a problem in IMPLIB version
1.1. We are researching this problem and will post new
information here as it becomes available.