静的リンクライブラリの画面を開く – プログラミング – Home

静的リンクライブラリの画面を開く
 
通知
すべてクリア

静的リンクライブラリの画面を開く


亀亀
 亀亀
(@亀亀)
ゲスト
結合: 18年前
投稿: 8
Topic starter  

いつもお世話になっております。

プロジェクトを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


引用解決済
トピックタグ
Ban
 Ban
(@ban)
Prominent Member
結合: 5年前
投稿: 776
 

静的リンクライブラリは、モジュール的にはひとつに結合されます。
そして、Windowsのリソースは、モジュールにひとつしかもてません。

リソースの入ったDLLにするか、リソースをひとつにまとめるなどの対応が必要です。


返信引用
亀亀
 亀亀
(@亀亀)
ゲスト
結合: 18年前
投稿: 8
Topic starter  

早速のご回答ありがとうございます。ということは静的リンクライブラリで画面を作成
することはできない(できるけど使えない)ということでしょうか。


返信引用
Ban
 Ban
(@ban)
Prominent Member
結合: 5年前
投稿: 776
 

使えるかと言われれば使えます。(使いやすいかは別)
・EXE側にリソースを持たない(ライブラリに持つ)、
・画面作成にリソースを使わない(CreateWindowExなど)、
・ライブラリのリソースは外からもらう(EXE側から/別DLLから)
…など、手はありますから。


返信引用
亀亀
 亀亀
(@亀亀)
ゲスト
結合: 18年前
投稿: 8
Topic starter  

ありがとうございました。ややこしくなりそうなので最初からDLLで行きたいと思いま
す。助かりました。


返信引用
Ban
 Ban
(@ban)
Prominent Member
結合: 5年前
投稿: 776
 

DLLでも、MFC使ってると、
AfxSetResourceHandleとかAFX_MANAGE_STATEとか必要になるかもしれませんが。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました