DLL技術について語るスレ
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
NGNG0002デフォルトの名無しさん
NGNG0003デフォルトの名無しさん
NGNGWebのどこら辺を調べればいいですか?
お薦めの本はなんでしょうか?
0004デフォルトの名無しさん
NGNGそう質問スレで聞くだけでは何が不満だったのだい?
0005デフォルトの名無しさん
NGNG質問スレだとあんまり突っ込んで聞けないでしょ。
0006デフォルトの名無しさん
NGNG0007デフォルトの名無しさん
NGNGDLL関連のスレ見あたらないし、立ててみたんだけどなぁ。
結構、需要はあるんじゃない?
0008デフォルトの名無しさん
NGNGレベルが低すぎてスレが立たないんだとは思わんのかね?
大体、DLLって語で何を指そうとしてるんだ?
まさかWindowsのDLLの使い方とかくそたわけたことを抜かすんじゃあるまいね?
0009デフォルトの名無しさん ◆MSEEFfect2
NGNGヽ(・ω・)ノ フォッフォッフォ
. / /
ノ ̄ゝ
. (V)∧_∧(V)
ヽ( )ノ フォッフォッフォ
. / /
.......... ノ ̄ゝ
すまない、おもしろそうだったんで、つい・・・
0010デフォルトの名無しさん
NGNGそれぞれで質問したほうがいいと思うズラ
0011デフォルトの名無しさん
NGNGVC++7 で直ったんだろうか。
0012デフォルトの名無しさん
NGNGまとまりすぎてても必要な情報がどんどん流れてくからな。
直感的にDLLな話題でもしてけば良いんじゃない?
0013デフォルトの名無しさん
NGNG0014デフォルトの名無しさん
NGNGだそうだ。
0015デフォルトの名無しさん
NGNG0016デフォルトの名無しさん
NGNG型とか全然違うのでシンドイんだけど。
0017デフォルトの名無しさん
NGNGELFの奴とか
ふつーDLLじゃなくてshared libraryとか言うようだが
0018デフォルトの名無しさん
NGNG0019デフォルトの名無しさん
NGNGあるよ
0020デフォルトの名無しさん
NGNGバカは放っておけ
0021デフォルトの名無しさん
NGNGっていうバグがでるんですけど、これ、バグの元はどうやって調べたら
いいんですか?
アプリケーションの終了中にでるので見当もつきません。
0022デフォルトの名無しさん
NGNGWIN作った人間の脳味噌
0023デフォルトの名無しさん
NGNGKERNEL32.dll の例外発生アドレスにブレークポイントを置いて実行。
後はバックトレースすれば?
0024デフォルトの名無しさん
NGNG0025デフォルトの名無しさん
NGNGカーネル内で落ちるなど論外なのだが
まあドライバがバグってる可能性もあるな
0026デフォルトの名無しさん
NGNGデバッグウィンドウみたらいつのまにか大量にでていたので、どこやら。
ちなみに、(MSCTF.DLL)も終了した時に大量にでるんですけど、
これって何をしているDLLなんでしょう。
0027デフォルトの名無しさん
NGNGユーザプロセスが落ちているんだろうからそんなに問題視する必要もないと思うが。
>>23
95系だとカーネルのDLLが配置されるメモリ空間にはcopy on writeできない。
のでブレークポイントが書き込めないはず。
0028デフォルトの名無しさん
NGNG0029デフォルトの名無しさん
NGNG大量に発生するDLLのエラーは全部
0xC0000005: Access Violation。
とでるので、VC6のブレークポインとダイアログに
この位置で停止のなかに入れてみたんですけど、
実行したらダメって言われてしまいました。
0030VC6
NGNG0031プログラム
NGNGぐへへ。
0032VC6
NGNG0033デフォルトの名無しさん
NGNG9xだとコンテキスト切り替えのコストをケチってか本来カーネルモードで
実装するような処理を半分ユーザーモード側でやってるからねえ。
まあそれはOSが腐ってるのであってバグってるプログラムの責任ではないか。
0034デフォルトの名無しさん
NGNGこれって、どうやらOffeceXPインストールするとあらわれて、
それがバグってるみたいですね。
でも、デバッグ実行するときに表示される
’〜.dll’をロードしました、合致するシンボル情報は見つかりませんでした。
とでるのって、どういう意味なんですか?
どなたかしりませんですか。
0035デフォルトの名無しさん
NGNG> とでるのって、どういう意味なんですか?
そういう意味。 >> 34
*.dbg あるなら入れてミソ。
0036デフォルトの名無しさん
NGNG> のでブレークポイントが書き込めないはず。
ウソ書かないよーに。 >>27
参照できないのは VxD アリーナ。
0037デフォルトの名無しさん
NGNGどっかの糞な DLL の DLL_PROCESS_DETACH が腐ってるパターンか。 >>21
0038デフォルトの名無しさん
NGNGある。 >>15
たとえば InstallShield 6.x までの setup.exe は(わざと)NE 形式。
…で、たしか NE な DLL をロードしてプラットフォーム(CPU なども)を確認し、
そのあとエンジン部分を展開していたと思われ。
0039デフォルトの名無しさん
NGNG0040デフォルトの名無しさん
NGNG参照できないなんて誰も言ってないような…
んでcopy on writeは共有アリーナでやろうとするとると他のプロセスで
ブレークポイントを通過したときそのプロセスが落ちるから事実上できない、
という話では
0041デフォルトの名無しさん
NGNGつまり、ロードしたけど、とくにどこにもDLLつかわれてないよ。
という意味ですか?
>*.dbg あるなら入れてミソ。
できたらもう少し詳しく知りたいのですが。
>37
これって、プロジェクトの設定とかで読みこまないようには
できませんか?
0042デフォルトの名無しさん
NGNG単にバージョンが違って関数が見つからないだけだろ。
クソスレ
0043デフォルトの名無しさん
NGNG0044デフォルトの名無しさん
NGNG0045デフォルトの名無しさん
NGNGシンボル情報があればソースコードの無いDLLでも
今どういう名前の関数が呼ばれてるか分かるって寸法だ。
0046デフォルトの名無しさん
NGNG0047デフォルトの名無しさん
NGNG思ったんだけど、DLLの仕様をある程度統一しない?
アレだと利用できます、これだと利用できません、だと何かと不便でしょ?
大まかなバイナリ仕様でも統一できない物かな?
で、細かい命令系は、CPUの汎用性に問題が出るから、依存を残しておいて、追々、
最適な物を選んで仕様化するとか。
まぁ、この時期になると、CPU仕様、OS仕様自体がある程度固まっちゃうことになるんだけど。
0048デフォルトの名無しさん
NGNGJ A V A マ ン セ ー
0049デフォルトの名無しさん
NGNG0050デフォルトの名無しさん
NGNG0051デフォルトの名無しさん
NGNGということは、
合致するシンボル情報は見つかりませんでした。
というのはプログラムでつかってないよ、という意味?
だとしたらやっぱり勝手に読んでバグ出して欲しくないので、
呼ばないようにできませんかね。
005245
NGNGうーむ。さすがにちっと物わかりが悪くないか?
当然、開発環境付属のヘルプやマニュアルは調べてみたんだろうね?
ロードしたDLL(例えばfoo.dllとしよう)を解析するための
シンボル情報(foo.dbgとかfoo.pdbとか)が無いってことだよ。
dll自体はプログラムが必要としてるからこそロードされるんだ。
確かに外国製のを日本語化したソフトって、各種メッセージがやたら
分かりにくいことが多いけどな…。
005351
NGNGえー、ということは、
必要だけどロードには失敗しているってこと?
アプリ自体は動いているけど実は問題を含んでるの?
0054デフォルトの名無しさん
NGNG確かアプリが終了するときに落ちる…って書いてたろーが?
ロードに失敗するなら、最初からそのアプリを起動できないか、
もしくは実行途中でダイナミックにそのDLLをロードするときにエラーが発生するはず。
…だから DLL_PROCESS_DETACH じゃないかっつってんだけど。
0055デフォルトの名無しさん
NGNGやっと理解できた気がします。ありがとうございました。
どこかでシンボル情報探してしらべてみます。
0056デフォルトの名無しさん
NGNGうそつくな
0057デフォルトの名無しさん
NGNG0058デフォルトの名無しさん
NGNGつーかOfficeのDLLのシンボルなんて配布されてねーんじゃねーの?
配布されてないなら「そのメッセージは気にしない」とするしかないが。
動作には関係ないんだし。
005950
NGNG006050
NGNGDDE
0061デフォルトの名無しさん
NGNGDDT
0062デフォルトの名無しさん
NGNGDLL
0063デフォルトの名無しさん
NGNGDangerous Driver Tenryu
0064デフォルトの名無しさん
NGNG0065デフォルトの名無しさん
NGNGつぅかCOM使うのが正攻法だと思われ。
0066デフォルトの名無しさん
NGNG0067デフォルトの名無しさん
NGNG0068デフォルトの名無しさん
NGNG0069デフォルトの名無しさん
NGNG0070デフォルトの名無しさん
NGNG0071デフォルトの名無しさん
NGNG0072デフォルトの名無しさん
NGNG身の程知らずだな。
0073デフォルトの名無しさん
NGNG0074デフォルトの名無しさん
NGNG0075デフォルトの名無しさん
NGNG0076デフォルトの名無しさん
NGNG実行開始時読み込みDLLの、
メリットとデメリットおせーて。
0077デフォルトの名無しさん
NGNGそれが呼ばれるタイミングで何らかの処理が必要な時。
0078デフォルトの名無しさん
NGNG前者は DLL が無いと起動できない。
アタッチ操作は不要。
起動と同時に DLL もロードされる。
後者は DLL が無い時にエラー処理ができる。
アタッチ操作が必要。
アタッチされるまで DLL はロードされない。
0079デフォルトの名無しさん
NGNG0080デフォルトの名無しさん
NGNG特に悩むことなく使えるから質問するようなこともないのでは
0081sage
NGNGPAGE_WRITECOPYできないことを言いたかった。あってる?
もっとも、代わりにローダはデバッグ実行時(?)にフックテーブル生成するんだっけ。
>>78の前者が>>76の後者でわ。Windowsだとこんな分類。
・普通のlib
・ロード時動的リンク(メイク時にインポートライブラリというのとリンクする)
・実行時動的リンク(実行時にLoadLibrary&GetProcAddressを使う)
最近では遅延インポートなるものもあって、ロード時動的リンクしつつ、
proc_ptr = GetProcAddress(...);
if(proc_ptr == NULL) エラー処理;
と同等のことをできるらしい。
0082デフォルトの名無しさん
NGNG0083デフォルトの名無しさん
NGNG> proc_ptr = GetProcAddress(...);
> if(proc_ptr == NULL) エラー処理;
> と同等のことをできるらしい。
ざっと MSDN 眺めた限りでは、フックだの何だのしなきゃ逝けないみたいで
面倒そうだ。
0084デフォルトの名無しさん
NGNG普通はリンカオプションに /delayload を追加するだけ。
0085デフォルトの名無しさん
NGNG83 の引用文を読んだ上で言ってる?
0086デフォルトの名無しさん
NGNG> proc_ptr = GetProcAddress(...);
> if(proc_ptr == NULL) エラー処理;
をそのままやればいいじゃない。
取った関数ポインタは捨ててもいい分楽。
0087デフォルトの名無しさん
NGNG遅延インポートなのに GetProcAddress() の引数に何を渡すの?
0088デフォルトの名無しさん
NGNGアフォですか?
0089デフォルトの名無しさん
NGNGモジュールハンドルと関数名
>>88
じゃあもっと簡単な方法があるの?
フックが面倒だとほざくから安易な逃げ道を紹介してみただけなんだが。
0090デフォルトの名無しさん
NGNGあのさー。
その、モジュールハンドルは、どっから持ってくるの?
まさか、GetModuleHandle() とか言う?
そんな事するくらいなら、delayload 使わないで LoadLibrary() 呼ぶのと
何が違うの?
わざわざ delayload にしてる意味無いじゃん。
そんな提案してちゃあ、アフォって言われたって当然だよ。
結局、エラーチェックは現実的じゃないから、ロード時リンクの時と同様に
リンクエラーは想定しないというのが最適解じゃないの?
エラーフックが嫌だと言うならね。
009190
NGNG> リンクエラーは想定しないというのが最適解じゃないの?
あ、もしかして 84 はこの意味で言った?
0092デフォルトの名無しさん
NGNG0093デフォルトの名無しさん
NGNG0094デフォルトの名無しさん
NGNGhttp://www.amazon.co.jp/exec/obidos/ASIN/4274064379/ref%3Dpd%5Fsim%5Fdp%5F4/250-0706835-4041019
どうよ?
0095デフォルトの名無しさん
NGNG初めてその関数が使われるであろうところの直前でDLL読み込むみたいな?
0096デフォルトの名無しさん
NGNG> コンパイルの時点で最適化するんじゃないの?
と、
> 初めてその関数が使われるであろうところの直前でDLL読み込むみたいな?
のつながりが全く読めないのだが。
何を言いたいのか分からないし、どこにレスしてるのかも分からない。
0097デフォルトの名無しさん
NGNGそのDLLが使ってる関数1つ呼び出して例外をキャッチすればいい
0098デフォルトの名無しさん
NGNG0099デフォルトの名無しさん
NGNG0100デフォルトの名無しさん
NGNG0101デフォルトの名無しさん
NGNGワラタ
0102デフォルトの名無しさん
NGNG0103デフォルトの名無しさん
NGNGdelayloadの原理がまったくわかってないんだな
0104デフォルトの名無しさん
NGNG0105デフォルトの名無しさん
NGNG0106デフォルトの名無しさん
NGNG0107デフォルトの名無しさん
NGNG0108デフォルトの名無しさん
NGNGマイクロソフト
0109デフォルトの名無しさん
NGNG0110デフォルトの名無しさん
NGNG0111デフォルトの名無しさん
NGNG■ このスレッドは過去ログ倉庫に格納されています