我想看一个dll里面包括了那些函数以及参数,是否有这样的工具?
 这样的工具能否列出函数名以及参数

解决方案 »

  1.   

    看函数用ms的Depends,参数好像没什么工具可以。
      

  2.   

    看函数用 depends (Dependency Walker) (只能看到被dll输出的函数,看其他函数可能需要有dll的符号文件(pdb,sym,...))。看参数:
           如果函数是被装饰过的C++函数的话,可以用depends 2.0来看,或用装饰名来自己读函数的参数
           如果函数是被装饰过的C __stdcall或__fastcall函数的话,装饰名最后一个@字符以后是参数所占的字节数。不过要看参数的类型等还是要反汇编。
           对于其他函数大概只能用反汇编了把。
      

  3.   

    '引用TypeLib Infomation
    Private Sub Command2_Click()
        Dim oTLInfo As TypeLibInfo
        Dim oMemInfo As MemberInfo
        Dim sDllName As String
        Dim sOrdinal As Integer
        Dim s As String
        
        Set oTLInfo = TLI.TypeLibInfoFromFile("MSVBVM60.DLL")
        For Each oMemInfo In oTLInfo.TypeInfos.NamedItem("Math").Members
         With oMemInfo
             Select Case .InvokeKind
                 Case INVOKE_CONST
                   s = s & "CONST  "
                 Case INVOKE_EVENTFUNC
                   s = s & "EVENT  "
                 Case INVOKE_FUNC
                   s = s & "FUNCTION  "
                 Case INVOKE_PROPERTYGET
                   s = s & "PROPERTY  "
                 Case INVOKE_PROPERTYPUT
                   s = s & "PROPERTY  "
                 Case INVOKE_PROPERTYPUTREF
                   s = s & "PROPERTY  "
                 Case INVOKE_UNKNOWN
                   s = s & "UNKNOWN  "
              End Select
              
              s = s & .Name
              
              If .Parameters.Count <> 0 Then
               s = s & "( "
                For Each pt In .Parameters
                  s = s & pt.Name & " AS " & pt.VarTypeInfo & " 代码略, "
                Next
              
               s = Left(s, Len(s) - 2) & ")" & Chr(10)
              End If
            .GetDllEntry sDllName, vbNullString, sOrdinal
               s = s & sDllName & "." & "Math" & " 成员" & Chr(10)
               s = s & .HelpString
          End With
          MsgBox s
          s = ""
          Next
    End Sub
      

  4.   

    这支针对有typelib的dll,对于这样的dll自然好对付,在vb中引用一下,再到对象浏览器中察看就行了
      

  5.   

    将DLL引用到程序中,在VB的设计环境下按F2,在类库中找到你要查看的DLL,应该可以看到DLL中的函数及函数的相应参数。
      

  6.   

    但是正如我说过的,并非所有的dll都能被引用,如只包含函数的dll。
    hhjjhjhj(大头) 的方法很好但只适用于 dll 库。
      

  7.   

    把DLL引用到当前的项目中.然后按F2就好啦