電子書籍の厳選無料作品が豊富!

VC++.NETでMFCアプリを開発しています。
コマンド側から、別のDLLのダイアログをCreateし、ShowWindow()したところで例外が発生します。

コマンド側は通常のDLLで作成し、「staticライブラリでMFCを使用する」で使用し、
ダイアログ側は拡張DLLで作成し、「共有DLLでMFCを使用する」で使用しております。

Create()するところで、コマンドのポインタをダイアログに渡すと例外が発生します。
理由がわかりません。教えてくださいm(__)m

説明が足りなければ補足いたします。

A 回答 (2件)

一番手っ取り早いのは、AfxSetResourceHandle()でダイアログリソースの読みこみ対象をDLLに置き換える。

この回答への補足

AfxSetResourceHandle()を使用して
DLLに置き換えてみましたが、うまく行きません。

//元のインスタンスを取得
m_hBaseInstance = AfxGetResourceHandle();
//MFCの動的接続
AFX_MANAGE_STATE(AfxGetStaticModuleState());
//MFCのインスタンスハンドルを取得
m_hMFCInstance = AfxGetResourceHandle();

とやっているんですが、元のハンドルと新しいハンドルの値が同じになります。

何か他に設定が必要なんでしょうか???

補足日時:2005/05/28 17:48
    • good
    • 0

>コマンド側から、別のDLLのダイアログをCreateし、ShowWindow()したところで例外が発生します。



てっきり「別のDLLのダイアログをCreate」って書いてあったんで、「別のDLLがリソースを持つダイアログを」
って解釈で回答しちゃったんですが。
これって、実際にダイアログのCreateメソッドを呼んでいるのはどこですか?呼び元のDLL?呼び先?

>Create()するところで、コマンドのポインタをダイアログに渡すと例外が発生します。

ポインタってなんのポインタですか?
ポインタを渡すと例外って、渡さないと例外が発生しないんですか?
渡すと、渡すだけで例外が発生していますか?
何かの処理をして例外が発生するんですか?
例外が発生する場所は特定できてますか?

あと、呼び元のEXE、それぞれのDLLのビルドタイプはDebugビルド、またはReleaseビルドのどちらかに
統一されていますか?
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!