- - PR -
親画面(EXE)と子画面(DLL)の作成
| 投稿者 | 投稿内容 | ||||||||
|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2003-08-16 14:45
いえ、単純にDLLを貰うだけで良いですよ。 開発を進める手順としては、 子画面を開発する人が守るべきインタフェースを決定します。 それに基づいてインタフェース型を含むDLLを作成します。 #サンプルで言うところのISub.dllです。 子画面の開発者にISub.dllを渡し、 インタフェース型を継承してクラスを作ってもらいます。 #クラス名も固定にした方がより単純になります。 優希さんは、子画面の開発者からDLL(例ではSub1.dll,Sub2.dll)を受け取って、 モジュール用のディレクトリにコピーします。 あとは、DLLをダイナミックロードするように作ってあるメインモジュール(例ではMain.exe)を動かせば、設定ファイルに従ってSub1.dllかSub2.dllを読み込んで動作します。Main.exeの再コンパイルは不要です。 #もちろん、設定ファイルでのDLLの指定方法は決めておく必要はあります。 あくまでも、Main.exeが参照するのはISub.dllだけです。
>削除しました。 私のところでは、こんなメニューとダイアログが表示されています。 .NET2002でも同様のダイアログはあるはずなので、探してみて下さい。 #例のごとく、優希さんが確認し終わったら削除します。 [ メッセージ編集済み 編集者: mei 編集日時 2003-08-16 15:47 ] | ||||||||
|
投稿日時: 2003-08-16 15:21
お疲れ様です。
そうですよねぇ。 DLLのみを貰えば、済むはずですもんね。 ---------------------- Main.exe ⇒ ISub.dll Sub1.dll ⇒ ISub.dll Sub2.dll ⇒ ISub.dll ---------------------- 上記のような参照をするんですね。 DLLのコピーと参照の設定。 この2点ですね? VS.NET2002 で探してみたのですが、 「追加」の次に「Web 参照の追加」項目がきているので、 ちょうど「参照の追加」が抜けているんです。 他のメニューバーなども調べて見たんですけど、 ないです(^^ ちなみに、[プロジェクトの依存関係]でやってみたんですけど、 うまくいかなかったです。 もうしばらく、がんばってみます。 | ||||||||
|
投稿日時: 2003-08-16 17:02
はい、そうです。
#using <ISub.dll> でも、良さそうですね。 Sub1,Sub2,Mainのそれぞれのヘッダに入れてみて下さい。 多分、これで大丈夫だと思うのですが、 もし駄目だったら、プロジェクトの設定C/C++のところで #using参照の解決というのがあるので、そこにDLLがあるパスを追加してみて下さい。 それで、#usingで参照出来るようになるはずです。 [ メッセージ編集済み 編集者: mei 編集日時 2003-08-16 17:08 ] | ||||||||
|
投稿日時: 2003-08-17 00:55
分かりました。 月曜に作業をしてみて、また報告いたしますので、 その際はよろしくお願い致します。 | ||||||||
|
投稿日時: 2003-08-18 09:05
全く関係ないですが。。。。
下の「プロファイル」から、「プライベートメッセージ」というものを送ることができます。登録してあるメールアドレスに、「プライベートメールが届きました」というメールが送信されます。お互いのメールアドレスが知られることはありません。“削除されているもの”については、こちらでやり取りされては如何でしょうか。 #見難かったもので | ||||||||
|
投稿日時: 2003-08-18 12:19
# Jittaさん、ご指摘ありがとうございます。
作業報告をしたいと思います。 「#using <ISub.dll>」をSub1.dllとMain.exeに追加しました。 それから、Mainのエントリポイントでエラーが多く出ていた為、 【int __stdcall WinMain()】のように置き換えました。 それで実行をしてみると、以下のところでエラーになってしまいます。
エラー内容は以下の通りでした。 ---------------------------------------------------- 'System.IO.FileNotFoundException' のハンドルされていない例外が Main.exe で発生しました。 追加情報 : ファイルまたはアセンブリ名 ISub、またはその依存関係の 1 つが見つかりませんでした。 ---------------------------------------------------- それで確認の為、Mainフォルダ内にSub1.dllとISub.dllが存在するのを確認しました。 次の手段として、 【#using参照の解決】にISub.dllのあるパス (ISub\debugフォルダ、またはMainフォルダ)を指定したのですが、 先程のエラーで終了してしまいます。 何かコーディングのミスがあるのでしょうか? ソースは、meiさんに頂いたものをしようしているつもりですが…。 何か分かることがありましたら、宜しくお願い致します。 それまで、いろいろ試してみます。 | ||||||||
|
投稿日時: 2003-08-18 21:14
失礼しました。 これより先は細かい内容になり、公の場でやり取りするのも気が引けますので、 これ以降の話はプライベートメッセージで行います。 | ||||||||
|
投稿日時: 2003-08-19 08:09
おもしろい話題なので、結果は教えてくださいね?
| ||||||||
