- PR -

exeからDLLの呼び出し

投稿者投稿内容
一郎
ぬし
会議室デビュー日: 2002/10/11
投稿数: 1081
投稿日時: 2007-06-05 11:06
引用:

さっちんさんの書き込み (2007-06-05 10:37) より:
DLL化しようとしている数が大変多いので
一緒にっていうのは、大変だな・・・と思ってるしだいです。


exeに取り込むのは起動時に表示されるフォームの部分だけでいいんじゃないですか。

引用:

さっちんさんの書き込み (2007-06-05 10:37) より:
参照設定しないことによって、最初の起動は早くなると考えています。
DLL化した機能を使用しない場合もあると思うので、動的ということを
考えているんです。


試したいなら、仮のアセンブリを大量に作って、それを参照設定して起動してみたらどうですか。
それで遅くなるなら参照設定が問題ということですよね。

よねKENさんも書いてますが、アセンブリはその中に定義されたクラスが必要になった時に初めてロードされます。
だから、参照設定していようが必要な時に動的にロードしようが同じです。

http://www.atmarkit.co.jp/fdotnet/technology/idnfw11_index/index.html
ここの第3回辺りまで読んでみてください。

------
引用:

さっちんさんの書き込み (2007-06-05 11:02) より:
でもとりあえず、テストをしたいので方法を知りたいのです。


そうですね。自分の目で見て納得したいですよね。
逆転の発想です。参照設定を減らすのが面倒なら、逆に増やして影響を見るんです。
上に挙げた方法を試してみてください。

[ メッセージ編集済み 編集者: 一郎 編集日時 2007-06-05 11:09 ]
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2007-06-05 11:43
引用:

さっちんさんの書き込み (2007-06-05 10:37) より:

参照設定しないことによって、最初の起動は早くなると考えています。


ならないです。

アセンブリ ローダーは必要になった時に初めてオンデマンドでロードします。そのため初回起動への影響はほとんどありません。むしろそのための遅延ロードです。

影響があるパターンとしては、これからロードしようとしている型 (クラス) に別の型を持つ static なメンバが多く含まれ、副次的に他のアセンブリもロードされる場合になると思いますが、そのような実装には (一般的ではないため狙っていない限り) ならないでしょう。なっているとしたら、アセンブリの分け方がおかしいと思います。

その場合でも、それほど大した処理時間にはならないハズです。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
囚人
ぬし
会議室デビュー日: 2005/08/13
投稿数: 1019
投稿日時: 2007-06-05 12:36
「参照設定をしない」というのをどういう意味で使っているのか図りかねますが、参照しないとコンパイルできなくなりますよ。今回の例で言うと、その DLL 中の型をその EXE をコンパイルするときにコンパイラに教えないといけないので。

言い方を変えると「参照設定」とはその程度の事であり、単にコンパイラにアセンブリの情報を与えているだけです。勿論、コンパイル対象には参照しているアセンブリの情報が埋め込まれますが。

なので、検証もなにも「参照しない」という選択肢はない(できない)と思います。

他の方も仰っているように、デフォルトで必要時に動的ロード(というかそれしかできない)になっているので問題ないと思いますが、モジュール単位で一気にロードされるので、それを嫌うならば、マルチモジュールアセンブリにすればロードするモジュールを分割するという手段を取れます。試してみてはいかがでしょうか。

_________________
囚人のジレンマな日々
mso
ぬし
会議室デビュー日: 2003/12/04
投稿数: 496
お住まい・勤務地: 宮城
投稿日時: 2007-06-05 12:48
msoです。

引用:

さっちんさんの書き込み (2007-06-05 09:12) より:
VB2005にて開発をしております。

そこで、exeからDLLで作った画面を呼び出すという処理を作ってます。
通常VB2005では、参照設定に追加をすればいいんですが、その方法の場合
起動時のレスポンスが悪くなるということで、それ以外の方法を調べているんでいるんですが
なかなか見つかりません。

どこかにいいサンプルありませんでしょうか?

ちなみに、exeもDLLもVB2005です



[ メッセージ編集済み 編集者: さっちん 編集日時 2007-06-05 10:00 ]



過去ログを探しましたか??

http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=27443&forum=7

スキルアップ/キャリアアップ(JOB@IT)