いつもお世話になっております。
プロジェクトをEXEと静的リンクライブラリの2つ作りました。どちらもMFCサポートで
す。
EXEプロセスにはメイン画面があり、ボタンを一個貼り付けています。
EXEプロジェクトにポップアップ画面A(CADlg)を作成しました。
静的リンクライブラリプロジェクトにポップアップ画面B(CBDlg)を作成しました。
メイン画面のボタン押下時に次のコードを実行しました。
CBDlg dlg( this );
dlg.DoModal();
次のような結果となりました。
画面Aと画面BのリソースIDが違う時→何も開かない。
画面Aと画面BのリソースIDが同じ時→画面Aが開く。
リソースファイルは両プロジェクトに別個に持っています。
なんとか画面Bを開かせたいのですが。
何が悪いのかご教授願えますでしょうか。
宜しくお願い致します。
環境 WinXP VC++6.0
静的リンクライブラリは、モジュール的にはひとつに結合されます。
そして、Windowsのリソースは、モジュールにひとつしかもてません。
リソースの入ったDLLにするか、リソースをひとつにまとめるなどの対応が必要です。
早速のご回答ありがとうございます。ということは静的リンクライブラリで画面を作成
することはできない(できるけど使えない)ということでしょうか。
使えるかと言われれば使えます。(使いやすいかは別)
・EXE側にリソースを持たない(ライブラリに持つ)、
・画面作成にリソースを使わない(CreateWindowExなど)、
・ライブラリのリソースは外からもらう(EXE側から/別DLLから)
…など、手はありますから。
ありがとうございました。ややこしくなりそうなので最初からDLLで行きたいと思いま
す。助かりました。
DLLでも、MFC使ってると、
AfxSetResourceHandleとかAFX_MANAGE_STATEとか必要になるかもしれませんが。