Applications with Multiple DLLs

An application that comprises multiple DLLs and/or EXEs has two multi-language implementation choices:

  • The application can provide an MUI resource DLL for each language and for each EXE or DLL that uses resources. In this case, for example, if MYAPP.EXE used MYDLL.DLL and MYHELPER.DLL, it would have to provide the following resources:
    Locale 0409 Locale 040c Locale 0411
    MYAPP.EXE.0409.MUI MYAPP.EXE.040c.MUI MYAPP.EXE.0411.MUI
    MYDLL.DLL.0409.MUI MYDLL.DLL.040c.MUI MYDLL. DLL.0411.MUI
    MYHELPER.DLL.0409.MUI MYHELPER.DLL.040c.MUI MYHELPER.DLL.0411.MUI

- or -

  • The application can provide a single MUI DLL for each language that is shared by all its modules (EXEs or DLLs). In this case, the ISV must include a special "pointer" in each module to tell the OS where to look for the resources. This pointer consists of a special resource of type RT_MUI and resource ID ID_MUI, whose value is a Unicode string that provides the prefix name of the MUI DLL.

    To combine the resources for MYDLL.DLL and MYHELPER.DLL into MYAPP.EXE.xxxx.MUI, insert a single resource into each of the DLLs with type RT_MUI and resource-ID ID_MUI whose value is the Unicode string "MYAPP.EXE". This will cause the OS to look for resources not in MYDLL.DLL.xxxx.MUI, but in MYAPP.EXE.xxxx.MUI.

    The following code example shows an RC file that contains this special resource:

    // SHARE.RC file
    ID_MUI RT_MUI DISCARDABLE 
    BEGIN
        // "MYAPP.EXE" in Unicode
        0x004D, 0x0059, 0x0041, 0x0050, 0x0050, 
        0x002E, 0x0045, 0x0058, 0x0045, 0x0000
    END
    

See Also

Locale Identifiers | MUI Resource DLLs

 Last updated on Friday, April 09, 2004

© 1992-2003 Microsoft Corporation. All rights reserved.