5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

DLLって

1 :デフォルトの名無しさん:01/09/05 00:12 ID:9l6nkCGI
DLLって関数群(ライブラリ)じゃないですか。
DLLのなかにスレッドを持たせることもできますよね。
今後も価値のある技術なんですか?
普通にライブラリ(.lib)でも問題ないですよね。
識者の方ご意見お待ちしてます。(まじスレ)

2 :デフォルトの名無しさん:01/09/05 00:27 ID:RgMRPKXI
>>1
プログラムのコード
 と
実行しているプログラムの状態(プロセス/スレッド)

の区別はついてますか? DLL, スタティックリンクライブラリとは
直交する話だけど。

3 :デフォルトの名無しさん:01/09/05 00:30 ID:9l6nkCGI
いや、もちろんマルチスレッドプログラミングを
一応はしてましたから。(実働してます。)
ただ、dllの用途が思いつかなかったのです。
dllって一回くらい使って見たいのですが、これって
用途が思いつかない…。

4 :デフォルトの名無しさん:01/09/05 00:38 ID:a3PLHGJI
1. ストリングリソースをdllにする。実行環境(日本語、英語)によってメッセージを変える。
2. どっかの下請けにインターフェイスだけ決めて中身をつくってもらう。
こっちゃは、その中身が動くもんとしてGUIを作る。動かんときはdllだけ作りかえる。
こっちゃのコンパイルの必要なし。
こんなことも思いつかないようでは、逝ったほうか良い。

5 :デフォルトの名無しさん:01/09/05 01:03 ID:9l6nkCGI
複数人数で開発する場合なんだ。
なる。
今後、複数人数で開発することがあれば使うことに
なるんだろうけど、今はいりません。
じゃ、お望みどおり逝ってきます。

6 :デフォルトの名無しさん:01/09/05 01:36 ID:u0i7tb/6
エキスパートCプログラミングのp125辺りから立ち読みしてください。
基本的には実行モジュールが小さくなる点と、異なるプロセスが同時に
扱えるためリソースの節約になる事がメリットです。
>>4のは別に普通のライブラリでも良いような気がする。

7 :デフォルトの名無しさん:01/09/05 02:22 ID:yPl1nwvo
DLLはLibと違って別の言語から呼べる。

8 :デフォルトの名無しさん:01/09/05 02:23 ID:qCEVoVh2
DLLはダル-
LIBはリブ-

9 : :01/09/05 02:26 ID:8z0WBIiA
プラグインなんかによく使うんじゃん?

dll使わないプラグインつくる知識が無いよ。鬱
どうやって本体とデーターのやりとりするんだろうか?
教えろ

10 :お胸おっぱい:01/09/05 02:29 ID:Bqx9xP/Y
プログラム実行時に動的にロード/アンロードできるし。
→応用例1: Excel に客依存特殊関数追加
→応用例2: 運用を止めずにプログラム修正 (但し、事前の検証は念入りに)

11 :デフォルトの名無しさん:01/09/05 02:29 ID:qCEVoVh2
>9
無限に広がる自分の可能性にかけるんじゃよ。

12 :お胸おっぱい:01/09/05 02:39 ID:Bqx9xP/Y
>>9
別プロセス蹴飛ばしてパイプなんてどうよ。

13 :デフォルトの名無しさん:01/09/05 07:12 ID:P9ki0xf2
>>7
アレ?
なんで Lib は駄目なの?

14 :デフォルトの名無しさん:01/09/05 10:34 ID:Q//JF6Ws
1はSusieプラグインとかアーカイバDLLとか知らんのでしょう。

15 :デフォルトの名無しさん:01/09/05 10:55 ID:ghUfF.qw
>>13
ぜんぜん問題ないよ。>>7の理由が聞きたいage。

16 :デフォルトの名無しさん:01/09/05 11:32 ID:qZJvlE5Y
つーかWindowsはDLLでできてますが何か?

KERNEL32.DLL
GDI32.DLL
USER32.DLL
以下略

17 :デフォルトの名無しさん:01/09/05 12:38 ID:yTIAOUhE
>>16
> つーかWindowsはDLLでできてますが何か?
どれに対する返答?

18 :デフォルトの名無しさん:01/09/05 13:05 ID:xCXieHAs
>>6
> >>4のは別に普通のライブラリでも良いような気がする。

lib だとライブラリが修正されるたびにソイツを使ってるモジュールもビルドし直す
ハメになるから鬱だぞ。
特にそのライブラリが複数のモジュールで利用されてる場合とかだとサイアク。

19 :デフォルトの名無しさん:01/09/05 13:08 ID:/8kfRrqA
test

20 :デフォルトの名無しさん:01/09/05 14:15 ID:iUZCS8gE
>>12
変数や関数に直接アクセスできないんで、効率も悪いし、
シリアライズ(今風に言えば)しないとならないのが面倒だし、
セマンティックギャップにも苦しむ羽目になるし。
いいことなし。

パイプ程度で「部品化」がOKだと思ったのであろう古のUnix屋の発想は、アンティーク。

注:
ヴィンテージは「古くて使い物になるもの」
アンティークは「古くて使い物にならないもの(飾りとかとしての価値は別だが)」

もっともUnix世界では、プロセスの「中」はCでも汗でもご自由にの無法地帯なので、
怖くて気楽に外と接続できない。そのため敢えてパイプというショボい手段しか提供しない
という悲観的モデルが必要だったのだろうことは、理解できる。

21 :デフォルトの名無しさん:01/09/05 14:22 ID:bCxH977s
プロセス「中」が無法地帯じゃないOSは?>>20

22 :デフォルトの名無しさん:01/09/05 14:24 ID:iUZCS8gE
リンク解決の問題については、

*DLL交換に際して「exe」を「リビルド」しなくてもいい
*DLL交換に際して「プロセス」を「終了」しなくてもいい

主に二つの効果が期待できるね。
もっともexeの作り方次第では前者のメリットしか享受できないが。

後者はAPI(winならLoadLibrary、unixならdlopen)を使うことで
実行時に動的にリンクを制御する。
rubyの「拡張ライブラリ」もこれ。
ruby.exe自体が将来作られるdllを知ってるわけじゃないんで、
ruby.exeの中でdll名を動的に生成してAPIでLoadしてる。

23 :名無しさん:01/09/05 15:17 ID:lN2bBg0.
メモリ内でも共有されるのは素晴らしいことだと思う。

24 :デフォルトの名無しさん:01/09/05 22:13 ID:4X6aBreU
>>22
> *DLL交換に際して「プロセス」を「終了」しなくてもいい
swaprun でもない限りロード中はそのファイルはロックされているので、
やはりプロセスを終了しなければならないと思われ。

25 :デフォルトの名無しさん:01/09/05 22:32 ID:rMkdIfwc
>>24
当然 FreeLibrary() するのは前提だと思うが。

26 :名無しさん@XEmacs:01/09/05 23:20 ID:c8mzLy0s
>>18
で、DLLのバージョンにはまりまくって.NETではセミスタティックリンクに戻
したわけか。

27 :デフォルトの名無しさん:01/09/05 23:55 ID:dOKkuiOI
>>21
>プロセス「中」が無法地帯じゃないOSは?

JavaOSまんせーまんせーまんせー!

JavaOSのあれをプロセスと呼ぶのは少し間違っているけど、だいたいはそういうこと。

28 :デフォルトの名無しさん:01/09/06 00:03 ID:K/RoSyoM
ドゥルルルルルル

29 :デフォルトの名無しさん:01/09/06 01:28 ID:2eP4Xj2U
>>27
「JavaOSのあれ」について技術的な詳細を述べたドキュメントを希望。その書き方
だと、さっぱり分からん。

30 :デフォルトの名無しさん:01/09/06 12:04 ID:BkON7Ark
dllは結局複数プログラムで何度も使われる可能性のある
コンポーネント化できる関数群があったとしたら、便利って事だよね。
kernel32.dllなどがstatic libだった時を考えてみな。
そもそもあれらの関数の実装をexeに入れることになって、巨大になるだろうし、
例えばあるアプリケーション(複数)がその中のlibの実装に問題があるために
障害が発生している場合、現在ではsp nを入れ替えれば済む話を、それぞれの
アプリケーションベンダーがビルドし直してリリースしなくてはならない。
MSのミスなのにそんな羽目になるのはいやだ。

31 :デフォルトの名無しさん:01/09/06 21:28
実行時の動的ロードの恩恵として本体exeの起動が早くなる。
これ、でかいアプリを作るときには結構重要。

32 :デフォルトの名無しさん:01/09/07 14:56
初歩的な質問でごめんなさい。dllってどうやって作るの?
開発言語は?
あとどうやって使うの?

33 :nanasisan:01/09/07 15:03
>>32
(1) Microsoft Visual StudioでもBorland Delphiでも良い。ほとんどの言語で作ることができるはず。
(2) 使い方はそれぞれの言語のマニュアルをお読みなさい。

34 :デフォルトの名無しさん:01/09/07 15:06
早速ありがとう。
VBAで作って、dbMAGICってソフトに組み込みたいんだけど。
VBAでも作れる?
どうすればいいの?>>33

35 :デフォルトの名無しさん:01/09/07 15:32
残念ながらVBAではできまへん。
VBなら出来ます。(但し、ActiveX-DLLのみ)

36 :お胸おっぱい:01/09/07 16:50
>>20
> いいことなし。
勿論。けど >>9 が DLL やだって言うからさ。
因みに、Unix でプラグイン実装するのも、やっぱり共有ライブラリを使うのが吉。

> そのため敢えてパイプというショボい手段しか提供しない
> という悲観的モデルが必要だったのだろうことは、理解できる。
理解できてないじゃん。
プロセス間の通信手段にパイプしかないワケじゃないよ?

37 :デフォルトの名無しさん:01/09/07 17:05
>>35
例えばエクセルで、dllを読みこませるにはどうしたらいいですか?

38 :デフォルトの名無しさん:01/09/07 17:23
>>37
Declearをヘルプで引いてみそ

39 :デフォルトの名無しさん:01/09/08 00:11
>>38
細かいようだが念のため
×Declear
○Declare

11 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)