Applications with Multiple DLLs

A version of this page is also available for

Windows Embedded CE 6.0 R3

4/8/2010

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 application developer 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

Concepts

MUI Resource DLLs

Other Resources

National Language Support (NLS) Locale Identifiers