言語リソースを保持するサテライトdllをロードしています。しかし、私は文字列をdllに保存するだけで、ダイアログリソースは保存しません。問題は、私は以下のようになりましたCTestDlgを持っている場合、それが立ち上がったことがないですdllではなくexeからリソースをロードする方法
hInst = LoadLibrary(_T("MyAppFRA.dll"));
if (hInst!= NULL)
AfxSetResourceHandle(hInst);
:以下のように私は、DLLをロードします。
CTestDlg dlg;
dlg.DoModal()
それは、ダイアログリソースIDD_DIALOG1は、exeファイルに存在するためであるが、いないDLL内でDoModalので、()(AfxSetResourceHandle()
呼び出しの結果として。)それを見つけるように見えることはできません。これは意図的なものです、私は思いましたDLLでリソースを見つけられなかった場合、自動的にexeで検索されますが、そうではないようです。
残りのリソースがDLLにある場合、exeリソースからダイアログをロードできますか?
ダイアログにはテキストは含まれていませんか?なぜ彼らも翻訳されませんでしたか? –
@ MarkRansom彼らは、OnInitDialog()の現在のリソースハンドルからテキストをロードします。この方法で私のダイアログリソースは共有され、テキストのみが翻訳されます。 – zar
単語が英語よりも長くても短くてもレイアウトが変更されることがあります。しかし、それがあなたのために働くなら、私は不平を言うことはありません。 –