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

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

DLL技術について語るスレ

1 :デフォルトの名無しさん:02/10/30 05:08
教えてください

2 :デフォルトの名無しさん:02/10/30 05:15
教えてスレ断固反対


3 :デフォルトの名無しさん:02/10/30 05:20
DLLについて良くわからんです。
Webのどこら辺を調べればいいですか?
お薦めの本はなんでしょうか?


4 :デフォルトの名無しさん:02/10/30 05:21
>>3
そう質問スレで聞くだけでは何が不満だったのだい?


5 :デフォルトの名無しさん:02/10/30 05:25
DLLって、結構深いかなぁと思ったので。

質問スレだとあんまり突っ込んで聞けないでしょ。

6 :デフォルトの名無しさん:02/10/30 05:28
深かろうがなんだろうがキミに教えるだけのスレに存在する意味は無いってことです。


7 :デフォルトの名無しさん:02/10/30 05:34
酷いなぁ。

DLL関連のスレ見あたらないし、立ててみたんだけどなぁ。
結構、需要はあるんじゃない?


8 :デフォルトの名無しさん:02/10/30 05:48
>>7
レベルが低すぎてスレが立たないんだとは思わんのかね?
大体、DLLって語で何を指そうとしてるんだ?
まさかWindowsのDLLの使い方とかくそたわけたことを抜かすんじゃあるまいね?

9 :デフォルトの名無しさん ◆MSEEFfect2 :02/10/30 05:51
   (V)∧_∧(V)
    ヽ(・ω・)ノ  フォッフォッフォ
.     /  /
    ノ ̄ゝ


.          (V)∧_∧(V)
           ヽ(   )ノ  フォッフォッフォ
.           /  /
       .......... ノ ̄ゝ

すまない、おもしろそうだったんで、つい・・・

10 :デフォルトの名無しさん:02/10/30 08:28
DLLはOSや処理系への依存が強いから、
それぞれで質問したほうがいいと思うズラ

11 :デフォルトの名無しさん:02/10/30 12:53
DLL で思い出したんだが、VC++6 の MSVCP60*.DLL の iostream 周りのリーク
VC++7 で直ったんだろうか。

12 :デフォルトの名無しさん:02/10/30 14:43
まあ、あんまり分散してても分かりづらいが、
まとまりすぎてても必要な情報がどんどん流れてくからな。
直感的にDLLな話題でもしてけば良いんじゃない?

13 :デフォルトの名無しさん:02/10/30 16:50
プラグインシステム用のデザインパターンってありますか?

14 :デフォルトの名無しさん:02/10/30 17:21
さっき読んだ本によるとPEのDLLはエクスポートテーブルとインポートテーブルがなんたら
だそうだ。


15 :デフォルトの名無しさん:02/10/30 19:47
PEでないDLLに意味はあるんでしょうか、、、

16 :デフォルトの名無しさん:02/10/30 20:05
BC++で作ったDLLを簡単にVBで使う方法ってある?
型とか全然違うのでシンドイんだけど。

17 :デフォルトの名無しさん:02/10/30 20:49
>>15
ELFの奴とか
ふつーDLLじゃなくてshared libraryとか言うようだが

18 :デフォルトの名無しさん:02/10/31 01:32
Windows dll の仕様は何処で調べられますか?


19 :デフォルトの名無しさん:02/10/31 02:15
>>16
あるよ

20 :デフォルトの名無しさん:02/10/31 03:45
>>19
バカは放っておけ

21 :デフォルトの名無しさん:02/10/31 03:50
例外処理(KERNEL32.DLL)にあります。
っていうバグがでるんですけど、これ、バグの元はどうやって調べたら
いいんですか?
アプリケーションの終了中にでるので見当もつきません。

22 :デフォルトの名無しさん:02/10/31 04:06
>>バグの元
WIN作った人間の脳味噌

23 :デフォルトの名無しさん:02/10/31 04:31
>>21
KERNEL32.dll の例外発生アドレスにブレークポイントを置いて実行。
後はバックトレースすれば?

24 :デフォルトの名無しさん:02/10/31 05:01
KERNEL32 の API の使い方を間違えてるだけだろ。

25 :デフォルトの名無しさん:02/10/31 09:09
そしたら本当はパラメータチェック等で弾くべきで
カーネル内で落ちるなど論外なのだが
まあドライバがバグってる可能性もあるな

26 :デフォルトの名無しさん:02/10/31 11:37
普段は実行中にエラーがでるんでなんとか見当つけることできたんだけど、
デバッグウィンドウみたらいつのまにか大量にでていたので、どこやら。
ちなみに、(MSCTF.DLL)も終了した時に大量にでるんですけど、
これって何をしているDLLなんでしょう。

27 :デフォルトの名無しさん:02/10/31 18:36
>>25
ユーザプロセスが落ちているんだろうからそんなに問題視する必要もないと思うが。

>>23
95系だとカーネルのDLLが配置されるメモリ空間にはcopy on writeできない。
のでブレークポイントが書き込めないはず。

28 :デフォルトの名無しさん:02/10/31 22:48
実は、ActiveX Dllのことを聞いてるんだよ。


29 :デフォルトの名無しさん:02/11/01 15:49
>>23
大量に発生するDLLのエラーは全部
0xC0000005: Access Violation。
とでるので、VC6のブレークポインとダイアログに
この位置で停止のなかに入れてみたんですけど、
実行したらダメって言われてしまいました。

30 :VC6:02/11/01 16:27
やんっダメ。

31 :プログラム:02/11/01 17:43
いいじゃねーか、ホラ。
ぐへへ。

32 :VC6:02/11/01 17:59
ダメー。そこはダメー。

33 :デフォルトの名無しさん:02/11/01 21:01
>>27
9xだとコンテキスト切り替えのコストをケチってか本来カーネルモードで
実装するような処理を半分ユーザーモード側でやってるからねえ。
まあそれはOSが腐ってるのであってバグってるプログラムの責任ではないか。

34 :デフォルトの名無しさん:02/11/02 13:30
MSCTF.DLL
これって、どうやらOffeceXPインストールするとあらわれて、
それがバグってるみたいですね。
でも、デバッグ実行するときに表示される
’〜.dll’をロードしました、合致するシンボル情報は見つかりませんでした。
とでるのって、どういう意味なんですか?
どなたかしりませんですか。

35 :デフォルトの名無しさん:02/11/02 13:39
> ’〜.dll’をロードしました、合致するシンボル情報は見つかりませんでした。
> とでるのって、どういう意味なんですか?
そういう意味。 >> 34
*.dbg あるなら入れてミソ。

36 :デフォルトの名無しさん:02/11/02 13:42
> 95系だとカーネルのDLLが配置されるメモリ空間にはcopy on writeできない。
> のでブレークポイントが書き込めないはず。
ウソ書かないよーに。 >>27

参照できないのは VxD アリーナ。


37 :デフォルトの名無しさん:02/11/02 13:46
> アプリケーションの終了中にでるので見当もつきません。
どっかの糞な DLL の DLL_PROCESS_DETACH が腐ってるパターンか。 >>21


38 :デフォルトの名無しさん:02/11/02 13:50
> PEでないDLLに意味はあるんでしょうか、、、
ある。 >>15

たとえば InstallShield 6.x までの setup.exe は(わざと)NE 形式。
…で、たしか NE な DLL をロードしてプラットフォーム(CPU なども)を確認し、
そのあとエンジン部分を展開していたと思われ。


39 :デフォルトの名無しさん:02/11/02 16:58
ELF Executable Linking File!マンセー

40 :デフォルトの名無しさん:02/11/02 17:24
>>36
参照できないなんて誰も言ってないような…
んでcopy on writeは共有アリーナでやろうとするとると他のプロセスで
ブレークポイントを通過したときそのプロセスが落ちるから事実上できない、
という話では

41 :デフォルトの名無しさん:02/11/02 17:52
>35
つまり、ロードしたけど、とくにどこにもDLLつかわれてないよ。
という意味ですか?

>*.dbg あるなら入れてミソ。
できたらもう少し詳しく知りたいのですが。

>37
これって、プロジェクトの設定とかで読みこまないようには
できませんか?


42 :デフォルトの名無しさん:02/11/02 17:56
>>41
単にバージョンが違って関数が見つからないだけだろ。
クソスレ

43 :デフォルトの名無しさん:02/11/02 19:03
と同時にクソレス

44 :デフォルトの名無しさん:02/11/02 20:01
つーことは、これが表示されてんのってまずいの?

45 :デフォルトの名無しさん:02/11/03 00:20
シンボル情報ってのは要するにデバッグ情報のことだろう?
シンボル情報があればソースコードの無いDLLでも
今どういう名前の関数が呼ばれてるか分かるって寸法だ。

46 :デフォルトの名無しさん:02/11/03 00:23
ここはVC++スレですか

47 :デフォルトの名無しさん:02/11/03 01:18
一応、DLLだからなんでも良いんちゃう?

思ったんだけど、DLLの仕様をある程度統一しない?
アレだと利用できます、これだと利用できません、だと何かと不便でしょ?

大まかなバイナリ仕様でも統一できない物かな?
で、細かい命令系は、CPUの汎用性に問題が出るから、依存を残しておいて、追々、
最適な物を選んで仕様化するとか。
まぁ、この時期になると、CPU仕様、OS仕様自体がある程度固まっちゃうことになるんだけど。


48 :デフォルトの名無しさん:02/11/03 01:21


    J A V A マ ン セ ー



49 :デフォルトの名無しさん:02/11/03 03:22
Javaでクラスを動的に取り込むのってなんていう名前の技術だっけ?

50 :デフォルトの名無しさん:02/11/03 05:07
OLE

51 :デフォルトの名無しさん:02/11/03 05:12
>45
ということは、
合致するシンボル情報は見つかりませんでした。
というのはプログラムでつかってないよ、という意味?
だとしたらやっぱり勝手に読んでバグ出して欲しくないので、
呼ばないようにできませんかね。

52 :45:02/11/03 07:43
>51
うーむ。さすがにちっと物わかりが悪くないか?
当然、開発環境付属のヘルプやマニュアルは調べてみたんだろうね?

ロードしたDLL(例えばfoo.dllとしよう)を解析するための
シンボル情報(foo.dbgとかfoo.pdbとか)が無いってことだよ。
dll自体はプログラムが必要としてるからこそロードされるんだ。

確かに外国製のを日本語化したソフトって、各種メッセージがやたら
分かりにくいことが多いけどな…。

53 :51:02/11/03 11:30
>>45
えー、ということは、
必要だけどロードには失敗しているってこと?
アプリ自体は動いているけど実は問題を含んでるの?

54 :デフォルトの名無しさん:02/11/03 11:54
>>53
確かアプリが終了するときに落ちる…って書いてたろーが?
ロードに失敗するなら、最初からそのアプリを起動できないか、
もしくは実行途中でダイナミックにそのDLLをロードするときにエラーが発生するはず。

…だから DLL_PROCESS_DETACH じゃないかっつってんだけど。


55 :デフォルトの名無しさん:02/11/03 22:41
>52
やっと理解できた気がします。ありがとうございました。
どこかでシンボル情報探してしらべてみます。

56 :デフォルトの名無しさん:02/11/04 13:17
>>50
うそつくな

57 :デフォルトの名無しさん:02/11/04 15:23
お前ら、今日も元気にリロケーションしてますか?

58 :デフォルトの名無しさん:02/11/04 19:11
>>55
つーかOfficeのDLLのシンボルなんて配布されてねーんじゃねーの?
配布されてないなら「そのメッセージは気にしない」とするしかないが。
動作には関係ないんだし。

59 :50:02/11/04 23:40
>56 ありがとう。

60 :50:02/11/05 01:08
>>56
DDE

61 :デフォルトの名無しさん:02/11/05 01:20
>>56
DDT


62 :デフォルトの名無しさん:02/11/05 01:35
>>56
DLL

63 :デフォルトの名無しさん:02/11/05 01:53
>>61
Dangerous Driver Tenryu

64 :デフォルトの名無しさん:02/11/05 07:43
start win.com

65 :デフォルトの名無しさん:02/11/05 08:16
>>58
つぅかCOM使うのが正攻法だと思われ。

66 :デフォルトの名無しさん:02/11/05 15:29
WIN.COM

67 :デフォルトの名無しさん:02/11/05 16:37
COMMAND.COM

68 :デフォルトの名無しさん:02/11/05 16:59
symdeb

69 :デフォルトの名無しさん:02/11/05 17:35
シニス

70 :デフォルトの名無しさん:02/11/05 18:07
Peニス

71 :デフォルトの名無しさん:02/11/06 16:26
つまり、DLLについて詳しい2ちゃんねらーは少ないということでファイナルアンサー?

72 :デフォルトの名無しさん:02/11/06 16:28
>>71
身の程知らずだな。

73 :デフォルトの名無しさん:02/11/06 16:49
つまり、72 は DLL について詳しくないということでファイナルアンサー?

74 :デフォルトの名無しさん:02/11/06 16:52
yes.

75 :デフォルトの名無しさん:02/11/06 20:25
DLLMain っていつ使うんだろう?

76 :デフォルトの名無しさん:02/11/06 20:29
普通のlibと
実行開始時読み込みDLLの、
メリットとデメリットおせーて。

77 :デフォルトの名無しさん:02/11/06 20:29
>>75
それが呼ばれるタイミングで何らかの処理が必要な時。

78 :デフォルトの名無しさん:02/11/06 20:33
>>76
前者は DLL が無いと起動できない。
アタッチ操作は不要。
起動と同時に DLL もロードされる。

後者は DLL が無い時にエラー処理ができる。
アタッチ操作が必要。
アタッチされるまで DLL はロードされない。

79 :デフォルトの名無しさん:02/11/06 22:29
両方のいいとこどりがdelayload

80 :デフォルトの名無しさん:02/11/06 22:33
>>71
特に悩むことなく使えるから質問するようなこともないのでは

81 :sage:02/11/07 10:04
>>36 デバイスドライバは詳しくないんだが、漏れのレスは上位2GがVirtualProtectで
PAGE_WRITECOPYできないことを言いたかった。あってる?
もっとも、代わりにローダはデバッグ実行時(?)にフックテーブル生成するんだっけ。

>>78の前者が>>76の後者でわ。Windowsだとこんな分類。
・普通のlib
・ロード時動的リンク(メイク時にインポートライブラリというのとリンクする)
・実行時動的リンク(実行時にLoadLibrary&GetProcAddressを使う)

最近では遅延インポートなるものもあって、ロード時動的リンクしつつ、
proc_ptr = GetProcAddress(...);
if(proc_ptr == NULL) エラー処理;
と同等のことをできるらしい。

82 :デフォルトの名無しさん:02/11/07 10:04
ageちまった…

83 :デフォルトの名無しさん:02/11/07 16:50
> 最近では遅延インポートなるものもあって、ロード時動的リンクしつつ、
> proc_ptr = GetProcAddress(...);
> if(proc_ptr == NULL) エラー処理;
> と同等のことをできるらしい。

ざっと MSDN 眺めた限りでは、フックだの何だのしなきゃ逝けないみたいで
面倒そうだ。

84 :デフォルトの名無しさん:02/11/07 17:19
フックだのなんだのは凝ったことをしたいときだけで
普通はリンカオプションに /delayload を追加するだけ。

85 :デフォルトの名無しさん:02/11/07 17:27
>>84
83 の引用文を読んだ上で言ってる?

86 :デフォルトの名無しさん:02/11/07 17:40
>>85
> proc_ptr = GetProcAddress(...);
> if(proc_ptr == NULL) エラー処理;
をそのままやればいいじゃない。
取った関数ポインタは捨ててもいい分楽。

87 :デフォルトの名無しさん:02/11/07 18:12
>>86
遅延インポートなのに GetProcAddress() の引数に何を渡すの?

88 :デフォルトの名無しさん:02/11/07 18:21
>>86
アフォですか?

89 :デフォルトの名無しさん:02/11/07 22:51
>>87
モジュールハンドルと関数名
>>88
じゃあもっと簡単な方法があるの?
フックが面倒だとほざくから安易な逃げ道を紹介してみただけなんだが。

90 :デフォルトの名無しさん:02/11/07 23:06
>>89
あのさー。
その、モジュールハンドルは、どっから持ってくるの?
まさか、GetModuleHandle() とか言う?
そんな事するくらいなら、delayload 使わないで LoadLibrary() 呼ぶのと
何が違うの?
わざわざ delayload にしてる意味無いじゃん。
そんな提案してちゃあ、アフォって言われたって当然だよ。

結局、エラーチェックは現実的じゃないから、ロード時リンクの時と同様に
リンクエラーは想定しないというのが最適解じゃないの?
エラーフックが嫌だと言うならね。

91 :90:02/11/08 01:06
> 結局、エラーチェックは現実的じゃないから、ロード時リンクの時と同様に
> リンクエラーは想定しないというのが最適解じゃないの?

あ、もしかして 84 はこの意味で言った?

92 :デフォルトの名無しさん:02/11/08 01:57
DLLが無きゃ無いでなんとかしたいんだよね

93 :デフォルトの名無しさん:02/11/08 03:28
その場合は、LoadLibrary() によるリンクで書くのが一番素直じゃないか?

94 :デフォルトの名無しさん:02/11/08 20:19
Linkers & Loaders
http://www.amazon.co.jp/exec/obidos/ASIN/4274064379/ref%3Dpd%5Fsim%5Fdp%5F4/250-0706835-4041019

どうよ?

95 :デフォルトの名無しさん:02/11/08 20:50
コンパイルの時点で最適化するんじゃないの?
初めてその関数が使われるであろうところの直前でDLL読み込むみたいな?

96 :デフォルトの名無しさん:02/11/08 23:20
>>95
> コンパイルの時点で最適化するんじゃないの?
と、
> 初めてその関数が使われるであろうところの直前でDLL読み込むみたいな?
のつながりが全く読めないのだが。
何を言いたいのか分からないし、どこにレスしてるのかも分からない。

97 :デフォルトの名無しさん:02/11/10 04:58
>>83
そのDLLが使ってる関数1つ呼び出して例外をキャッチすればいい

98 :デフォルトの名無しさん:02/11/11 01:38
アドレスもわかんないのに呼び出すなんてできないよ

99 :デフォルトの名無しさん:02/11/11 01:39
やっぱりIriaがある日本のDLL技術は優れていると世界的にもいえるのでしょうか.地きゅうびょうとかもあるし.

100 :デフォルトの名無しさん:02/11/11 01:44
IriaとDLLは関係ない。

101 :デフォルトの名無しさん:02/11/11 02:20
>>99-100ネタなんだろうが…。
ワラタ

102 :デフォルトの名無しさん:02/11/11 03:27
よくわからんが 98 はアフォ決定。

103 :デフォルトの名無しさん:02/11/12 09:36
>>102
delayloadの原理がまったくわかってないんだな

104 :デフォルトの名無しさん:02/11/12 10:24
基本的に、DLL のルーチンの呼び出しはポインタ経由という事でよろしいか?

105 :デフォルトの名無しさん:02/11/12 11:56
VC++でActiveXDLLが作りたいのですが、参考になるサイトありませんか?

106 :デフォルトの名無しさん:02/11/12 12:35
とりあえずチュートリアル

107 :デフォルトの名無しさん:02/11/13 08:34
ときめきチュートリアル

108 :デフォルトの名無しさん:02/11/13 10:00
>>105
マイクロソフト

109 :デフォルトの名無しさん:02/11/18 16:11
マイ糞ソフト

110 :デフォルトの名無しさん:02/11/20 14:57


111 :デフォルトの名無しさん:02/12/03 13:43
Objective-C 最っ高

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

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

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