ダイアログやメニューのリソースだけを入れたDLLを用意して、DLLを切り替えること
によって多国語対応しているソフトありますよね?
これってどうやるんでしょうか?
一応外部DLLからダイアログを表示することはできたんですけどそのあとがわかりません。

CDialog dlg;
HINSTANCE hInst;
RSRC hDlgInit;

hInst = ::LoadLibrary("jpn.lng");
hDlgInit = ::FindResource(hInst,MAKEINTRESOURCE(IDD_ABOUTBOX),RT_DIALOG);
hResource = ::LoadResource(hInst, hDlgInit);

if (hResource != NULL)
{
LPDLGTEMPLATE lpTemplate;

lpTemplate = (LPDLGTEMPLATE)GlobalLock(hResource);
GlobalUnlock(hResource);
dlg.InitModalIndirect(lpTemplate);
}

dlgg.DoModal();

本当はCDialogクラスから派生したCAboutDlgでやりたいんですけど、InitModalIndirect()
呼び出したあとにASSERTでとまっちゃいます。