有一个别人写好的程序,我很想知道他的程序中调用了哪些DLL
曾经试过用Dll Show,但不管用(该软件返回了一大串DLL,有些根本不可能是那个程序调用的)
有没有编程方法能解决我的问题?(或是有现成的软件也行)

解决方案 »

  1.   

    我看到过一篇这样的方法!你看看有用么
        1 在WIN98里->程序->附件->系统工具->系统信息 
        2 然后打开‘系统信息’后选那个树形中的‘已加载32位模块’ 
        现在你所看到的就是系统当前用到的DLL和一些OCX文件, 还会有一些EXE文件。VB主要可能用的是DLL和OCX文件。运行上面两步时先不要启动你的VB程序以及其它的WIN98程序。这样我们得到的是一个最少的文库列表,以进与后面的列表比较。 
        3 在右边的文件列表‘名称’里按SHIFT用鼠标选所有的文件名。然后选菜单的‘复制’并打开记事本将 ‘复制’的信息粘过来,并保存。如:first.txt 
        4 打开你写的VB程序(我指的是已编译成EXE的程序)并使用它的所有功能(只是运行出来还是不够的,DLL文件是动态装入的,只有用到相应功能时才会装入),并且不要关你的程序。 
        5 现在回到‘系统信息’里并按F5更新文件列表。这时所得到的列表就包括了VB所要用的运行库。然后你要重做上面的第3步。将它也保存。如:last.txt 
        6 我们已经SAVE两个文件了,现在只要比较它们的不同就可以了。你可以打开那两个一边一个很眼一行行看,看看后来存的那个多了些什么也可以用 fc first.txt last.txt > diff.txt 来比。不过这样结果很乱。 
        总之以上方法就是根据程序运行时装入内存的文件库来确定,这个程序所必要的文件
    也可以从http://www.sysinternals.com/handleex.htm下载免费工具:HandleEx。这个工具可以显示当前运行的进程都使用了哪些DLL
      

  2.   

    用VS6.0自带的工具:depends  打开.EXE 或.OCX 就可以看所用的DLL