|
|
Classification: |
C++ |
Category: |
Development |
Created: |
01/24/2005 |
Modified: |
09/15/2005 |
Number: |
FAQ-1213 |
Platform: |
ER5, Symbian OS v6.0, Symbian OS v6.1, Symbian OS v7.0, Symbian OS v7.0s, Symbian OS v8.0, Symbian OS v8.0a, Symbian OS v8.0b,
Symbian OS v8.1a, Symbian OS v8.1b |
|
Question: How do I update my static interface DLL with a new version?
Answer: The loader will statically link to the first version of the specified DLL that it finds in the drive search order C, Y, X,
..., D, B, A, Z. Therefore, in order to replace/update a static interface DLL you need to put the new DLL on a drive higher
in the search order.
There are several caveats to the above:
- An exe/DLL is in ROM will always use the DLL version in ROM. Therefore, in order to update code in ROM, you also need to update
any exes/DLLs in ROM that link to it.
- If a version of the static interface DLL has already been loaded, then this will be used by all non-ROM-based DLLs/EXEs that
subsequently link to it.
For example, consider a server called MyServer.exe that links to a static interface DLL called Utility.dll. Both MyServer.exe
and Utility.dll are on ROM. If you install a new version of Utility.dll on MMC card, this will not be used when MyServer.exe
is loaded. However, if you install both MyServer.exe and Utility.dll on MMC, then Utility.dll *will* be used when the MyServer.exe
on MMC is launched. If you then launch the ROM-based MyServer.exe (so both versions of the EXE are running), this will use
the original ROM-based Utility.dll.
|
|
|