Google グループは Usenet の新規の投稿と購読のサポートを終了しました。過去のコンテンツは引き続き閲覧できます。
表示しない

依存DLLやOCXの 情報を取得する方法につ いて

閲覧: 0 回
最初の未読メッセージにスキップ

Fumihiro Ono

未読、
2003/07/14 6:59:462003/07/14
To:
はじめまして、小野といいます。

仕事で、いろいろなRuntime DLLやOCXを使うVBのプログラムを
作っているのですが、インストーラーを作ることになりました。

そこで、インストーラーに格納しなくてはいけないDLLを
調べる必要があります。

どうやったら、実行ファイルから使用されているDLLやOCXの情報を
取得できるのでしょうか?

UNIXなら、lddコマンドで依存共有ライブラリーを調べることが出来ます。
そのコマンドのWindows版がほしいのです。

また、インストーラを作るのに、簡単なフリーのツールがありましたら、
情報提供お願いします。

お勧めのがあれば、有料でもかまいません。

情報提供お願いします。
--
小野 文弘 <f_o...@hotmail.com>

Akira Kakuto

未読、
2003/07/14 9:10:042003/07/14
To:
"Fumihiro Ono" <new...@hotmail.com> wrote in message
news:2003071419540...@hotmail.com...

> そこで、インストーラーに格納しなくてはいけないDLLを
> 調べる必要があります。
>
> どうやったら、実行ファイルから使用されているDLLやOCXの情報を
> 取得できるのでしょうか?

役立つかどうかわかりませんが、 dependency walker というのがあります。
Visual Studio 6.0 には、確か付録で付いていたようです。
Free software です:

http://www.dependencywalker.com/

IIJIMA Hiromitsu

未読、
2003/07/14 10:49:592003/07/14
To:
いいじまです。

> > そこで、インストーラーに格納しなくてはいけないDLLを
> > 調べる必要があります。
> >
> > どうやったら、実行ファイルから使用されているDLLやOCXの情報を
> > 取得できるのでしょうか?
>
> 役立つかどうかわかりませんが、 dependency walker というのがあります。

Dependency Walker はまだ試していませんが…

当然のことながら、Dependency Walker なり ldd コマンドなりで検出できるのは、
起動時に読み込まれるものだけです。起動後に LoadLibrary() で読み込まれる
ものは検出不能のはずです。

ちなみに、Cygwin の配布物を探せば ldd コマンドもあるかもと思って探してい
るのですが、どうも見あたらない…
http://www.cygwin.com/packages/binutils/

========================================================================
飯嶋 浩光 / でるもんた・いいじま http://www.ht.sakura.ne.jp/~delmonta/
IIJIMA Hiromitsu, aka Delmonta mailto:delm...@ht.sakura.ne.jp

IIJIMA Hiromitsu

未読、
2003/07/14 10:52:002003/07/14
To:
いいじまです。追記。

> 当然のことながら、Dependency Walker なり ldd コマンドなりで検出できるのは、
> 起動時に読み込まれるものだけです。起動後に LoadLibrary() で読み込まれる
> ものは検出不能のはずです。

そういうものを検出するには、実際にそのプログラムを走らせながら、別のプロ
グラムでその挙動をリアルタイムで監視する必要があります。もしかしたら
Dependency Walker がそういうアプリなのかもしれませんが…

Masao Seki

未読、
2003/07/14 11:39:442003/07/14
To:
Fumihiro Ono wrote:

> どうやったら、実行ファイルから使用されているDLLやOCXの情報を
> 取得できるのでしょうか?
>
> UNIXなら、lddコマンドで依存共有ライブラリーを調べることが出来ます。
> そのコマンドのWindows版がほしいのです。

私にすぐに挙げられるのは、
  Cygwinの cygcheck (無償)
VisualStudioの Dumpbin (有償)
位です。

きっと、BorlandにもCodeWarriorにも有ると思う。

あ、OCXの事は、分かりません。
専門家でないもので、悪しからず。

# hotmailからの投稿だと、識者の方に記事を読んで貰えてない
# 可能性大ですよ。ご承知かも知れませんが、一応老婆心より。

--
関@神奈川
Masao Seki <ma-...@gb3.so-net.ne.jp>

ka...@sra-tohoku.co.jp

未読、
2003/07/15 1:33:362003/07/15
To:
かべ%非Winプログラマ

>> 当然のことながら、Dependency Walker なり ldd コマンドなりで検出できるのは、
>> 起動時に読み込まれるものだけです。起動後に LoadLibrary() で読み込まれる

いんや、動的に読まれる奴もちゃんとトレースします。
(とREADMEには書いてある)

逆に言えば特定の操作をしないと使われないようなライブラリは
最初は記録されないので、dependency walkerでトレースしつつ
必要なライブラリを全部なめるようにあらゆる操作を行う必要があります
(とREADMEには書いてある)

実際使ってみてもそんな感じです。
--
kabe

Ryutaro Sakaki

未読、
2003/07/14 20:13:512003/07/14
To:
榊です。

> 仕事で、いろいろなRuntime DLLやOCXを使うVBのプログラムを
> 作っているのですが、インストーラーを作ることになりました。
>
> そこで、インストーラーに格納しなくてはいけないDLLを
> 調べる必要があります。
>
> どうやったら、実行ファイルから使用されているDLLやOCXの情報を
> 取得できるのでしょうか?

VBでしたら、VB5までならセットアップウィザード、
VB6ならディストリビューションウィザードというツールが
付属していたと思いますが、ありませんか?
それを使えば、依存ライブラリも自動的に収集してくれま
す。

> UNIXなら、lddコマンドで依存共有ライブラリーを調べることが出来ます。
> そのコマンドのWindows版がほしいのです。

VB単体についていたかわかりませんが、VisuaStudioのツールには
「Dependency Walker」という依存を階層で見れるツールがありま
す。


では

Masao Seki

未読、
2003/07/14 20:25:192003/07/14
To:
関@神奈川です。

フォロー、たくさん付いていたんですね。

fj.os.ms-windows.programmingで、ひたすら待っていた
お馬鹿な私です。

Masao Seki wrote:
> Fumihiro Ono wrote:
>
>
>>どうやったら、実行ファイルから使用されているDLLやOCXの情報を
>>取得できるのでしょうか?
>>
>>UNIXなら、lddコマンドで依存共有ライブラリーを調べることが出来ます。
>>そのコマンドのWindows版がほしいのです。
>
>
> 私にすぐに挙げられるのは、
>   Cygwinの cygcheck (無償)
> VisualStudioの Dumpbin (有償)
> 位です。

cygcheckは、環境をフルにインストールしていないと
「ファイルがオープンできません」
とか言われるかも知れません。その時は、フルパスで指定
するか、カレントにコピーして、指定してください。

こんな感じ。

C:\>cygcheck C:\winnt\explorer.exe
C:\winnt\explorer.exe
C:\WINNT\System32\ADVAPI32.DLL
C:\WINNT\System32\NTDLL.DLL
C:\WINNT\System32\KERNEL32.DLL
C:\WINNT\System32\RPCRT4.DLL
C:\WINNT\System32\GDI32.DLL
C:\WINNT\System32\USER32.DLL
C:\WINNT\System32\SHLWAPI.DLL
C:\WINNT\System32\COMCTL32.DLL

それから、DumpbinをDOS窓で使うには、Dumpbinの置き場所
だけでなく、(名前を忘れましたが)関連するDLLの在処に
もパスを通しておく必要があります。インストーラの作成
をされるような方なら、この辺の作業は、大丈夫ですよね。


> # hotmailからの投稿だと、識者の方に記事を読んで貰えてない
> # 可能性大ですよ。ご承知かも知れませんが、一応老婆心より。

フォローが付いていると分かっていれば、こんな余計なことは
書かなかった。
それにしても、「Followup-To:」の指定は、最初からしっかり
見えているのに、関係ない場所で待ち続ける私は、いったい・・・。

KATO Kenji

未読、
2003/07/14 20:32:062003/07/14
To:
KATO Kenji wrote on Tue, 15 Jul 2003 09:28:14 +0900
in article <bevhk6$q2s$1...@hawaii.ykhm.cij.co.jp>:
>Fumihiro Ono wrote on Mon, 14 Jul 2003 19:59:46 +0900
>in article <2003071419540...@hotmail.com>:

>>どうやったら、実行ファイルから使用されているDLLやOCXの情報を
>>取得できるのでしょうか?
>>
>>UNIXなら、lddコマンドで依存共有ライブラリーを調べることが出来ます。
>>そのコマンドのWindows版がほしいのです。
>
>Microsoft の Dipendency Walker というツールがあります。
>VC、SDK、リソースキットなど大抵の開発ツールには付属している
>みたいです。

それと http://www.sysinternals.com/ の Process Explorer
ってのもあります。
これは実行中のプログラムが実際に使用している DLL やオブジェクト
を参照することができます。

--
KATO Kenji mailto:kato....@cij.co.jp

KATO Kenji

未読、
2003/07/14 20:28:142003/07/14
To:
Fumihiro Ono wrote on Mon, 14 Jul 2003 19:59:46 +0900
in article <2003071419540...@hotmail.com>:
>どうやったら、実行ファイルから使用されているDLLやOCXの情報を
>取得できるのでしょうか?
>
>UNIXなら、lddコマンドで依存共有ライブラリーを調べることが出来ます。
>そのコマンドのWindows版がほしいのです。

Microsoft の Dipendency Walker というツールがあります。
VC、SDK、リソースキットなど大抵の開発ツールには付属している
みたいです。

--
KATO Kenji mailto:kato....@cij.co.jp

Kenji Yamamoto [Security MVP]

未読、
2003/08/07 9:56:432003/08/07
To:
山本です。

|Subject: Re: 依存DLLやOCXの情報を取得する方法について
|From: KATO Kenji <kato....@cij.co.jp>
|Date: Tue, 15 Jul 2003 09:28:14 +0900
|Message-Id: <bevhk6$q2s$1...@hawaii.ykhm.cij.co.jp>
|User-Agent: Datula version 1.52.01 for Windows

| Microsoft の Dependency Walker というツールがあります。
| VC、SDK、リソースキットなど大抵の開発ツールには付属している
| みたいです。

Windows 2000 以降の OS メディアに収録されているサポートツール、
の中にもあります。アプリケーションのクラッシュ、不具合などの追跡
によく使いますね。何処で落ちるか、どのモジュールを参照しているの
か、といったことであれば、簡単な内容なら判りますから。

Regards,

Kenji Yamamoto [MVP]

--
"La maniere la plus profonde de sentir quelque chose est d'en souffrir."
(Gustav Flaubert, 'Carnet')
Kenji Yamamoto, Microsoft MVP (Security), MCP+I, MCSE (TCP/IP, IIS4, IEAK4)
mailto:rou...@jcom.home.ne.jp

新着メール 0 件