掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
外から利用する場合の DLLとEXEの違いについて (ID:50337)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
> >dllを呼ぶ場合は、自分と同じプロセス内にdllが読み込まれる > プロセス内部のメモリ空間が一緒なら、DynamicではなくStaticのような気が・・・。 ライブラリを実行時にリンクするのがDLL, コンパイル時にリンクするのがStaticライブラリ(=ライブラリ)です。 > >大きな情報を渡したい時に、直にポインタを使えませんので、工夫が要ります。 > ポインタってC言語の用語で、一般的な情報処理用語ではないような。 モニカ,という表現を使うよりはわかりやすいのでは? > >頻繁に交信を必要とする用途には良くはないと思います。 > なんか、誤解を生みそうですね。 そうですかねぇ……。 DLLで済むものであれば,DLLの方が圧倒的にコストが低いと思いますよ。 プロセス間通信は高くつきますから。 > >・DLL内の関数の仕様は、基本的に作った人しかわからないので、他から流用される可能性が低くなる。 > >・VC++などから利用したくなっても、比較的低コストで再利用できる。 > この発言、矛盾してません? 矛盾していますかねぇ……。 DLLの関数仕様は作った本人はわかっていますから,他人から流用はされませんが, 自分は仕様がわかっているので簡単に再利用できますよ。 > DLLは他人に流用される(=再利用)から意味があるのです。 > ですから、他人に仕様が分からないAPIをDLLとして提供しても全然意味がありません。 自分で使う複数のプログラムで同等のコードを書く場合にDLLにする事は意味があります。 例えば,Microsoft Visual Studio 97にDEVSHL.DLLというDLLがあります。 これは明らかにVisual Studio本体であるMSDEV.EXEから使われるためのDLLで,公開するためのものではありません。 > これは、VC++で作った関数をライブラリにしてVB側のリンカーで取り込め > ないのかなぁと思いました。何か重大な勘違いをしているかもしれませんが > このようなアプローチ自体がないと言うことでしょうか? 無いと考えるべきでしょう。 リンクすることは出来ますが,呼び出すためにプロシージャ・関数をコンパイラに認識させる方法がありません。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.