- ベストアンサー
EXEからDLLへの移植について
- EXEからDLLへの移植方法や違いについて教えてください
- EXEをDLLに移植する際に注意すべきポイントはありますか
- EXEからDLLへの移植に関する経験のある方、アドバイスをお願いします
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
ダイアログのリソースがDLLにないのに、DLLのインスタンスを渡してもリソースが見つかるはずがないので、リソースのある方のインスタンスハンドルを渡さないとだめですよね。 リソースはどちらにありますか。 リソースがどちらにもないのに、いずれかのインスタンスを渡してもリソースが見つかるはずがないので、リソースをいずれかに追加しないとだめですよね。 リソースは追加されていますか。 リソースのIDが異なっているのに、そのIDで探しに言っても正しいリソースが見つかるはずがないので、正しいリソースハンドルを使わないとだめですよね。 追加しているリソースのIDは、ヘッダのものと一致していますか。 (EXEとDLLは別プロジェクトになりますが、正しく一致していますか)
その他の回答 (2)
- MrBan
- ベストアンサー率53% (331/615)
hInstance に渡されているハンドラは「誰の」ハンドラですか? ExeからDLLをロードした場合、ExeのハンドルとDLLのハンドルは違うのですが、どちらを渡していますか。 そして、対象ダイアログのリソースを持っているのは、 ExeとDLLのどちらですか。両者は一致していますか。 # あっていると思っても、ためしに別のハンドルを渡してみたら表示されたりしませんか。
補足
DLLのハンドルです。 両者が一致しているかはわかりません。(すみません)
- MrBan
- ベストアンサー率53% (331/615)
以前の質問に対する回答でほぼ解決できそうに見えますが、#3の方のご指摘などは確認されてますか? > 実行形式で組まれたプログラム(ソース)を -- snip -- > よろしくお願い致します。 リソースなどを参照する際のインスタンスが異なる、 スレッドが違う、など。 たぶん、具体的なコードを提示してもらった方が早いです。
補足
具体的にコードを出そうと思います。 extern "C" int WINAPI IOPI_Init(HINSTANCE hInstance, HWND hRootWnd, HWND hParentWnd) { … hAppModule=(HMODULE)hInstance; … HWND hDlgWnd = ::CreateDialog( hAppModule, MAKEINTRESOURCE(IDD_DIALOG1), hWnd, (DLGPROC)MyDlgProc); … 以上、このようなところです。よろしくお願い致します。
補足
>追加しているリソースのIDは、ヘッダのものと一致していますか。 一致しているのですが、表示されません。よろしくお願い致します。