Re: Resource DLLs
"jklioe" <ranu2006@gmail.com> wrote in message
news:1189486347.840843.133570@g4g2000hsf.googlegroups.com...
I have created an application in MFC (Dialog based)and created
satellite dlls in different languages
and I call the dll as follow:
HINSTANCE hInstance = LoadLibrary(_T("MyAppKorean.dll"));
AfxSetResourceHandle(hInstance)
Strings that are in string table displays properly ie in locale
language .
While strings in Dialogs appears in default language ie English .
If your dialogues in the resource DLL are translated, then it should work
as lomng as you are using the right resource handle at the right moment.
I do it as follows (currently with English in the programs resources and
Dutch, French, German, Italian, Spanish, Swedish in separate resource DLLs.
I define a class - schematically
class MY_UI
{
//...
};
Its constructor uses AfxSetResourceHandle to set the language I want to use
and remembers the previous resource handle (as a class member).
Its destructor uses AfxSetResourceHandle to reset the previous handle.
MY_UI has a member function for each dialogue box in the program, which
handles the dialogue, typically of the form:
BOOL MY_UI::editSomething( SOMETHING &x, CWnd *pParent )
{
BOOL bResult(FALSE);
CDgEditSomething Dlg( x, pParent );
if( Dlg.DoModal()==IDOK )
{
x = Dlg.dgGetResult();
bResult = TRUE;
}
return bResult;
}
Then it is used with
MY_UI myui;
bResult = myui.editSomething( x, pParent )
and it just works. I set it up a year or so ago and have never had to worry
about it since. I only have to remember to use dialogues always from
within a member of MY_UI
Dave
--
David Webber
Author of 'Mozart the Music Processor'
http://www.mozart.co.uk
For discussion/support see
http://www.mozart.co.uk/mzusers/mailinglist.htm