我有一dll但是我怎么知道它有哪些方法(函数)能供我使用呢?(50分)

  • 主题发起人 主题发起人 emailcdz
  • 开始时间 开始时间
E

emailcdz

Unregistered / Unconfirmed
GUEST, unregistred user!
我有一dll但是我怎么知道它有哪些方法(函数)能供我使用呢?
 
用EXESCOPE试试。
 
能具体点吗,对dll我可是空白但是我急用!
 
给我emial,我给你发过去。(EXESCOPE)
 
EXESCOPE 我有,怎么用才能看出函数呢?
 
转贴别人的

uses
ImageHlp


procedure ListDLLFunctions(DLLName: string
List: TStrings)

// by Dmitry Streblechenko
type
chararr = array [0..$FFFFFF] of Char

var
H: THandle

I, fc: Integer

st: string

arr: Pointer

ImageDebugInformation: PImageDebugInformation

begin
List.Clear

DLLName := ExpandFileName(DLLName)

if FileExists(DLLName) then
begin
H := CreateFile(PChar(DLLName), GENERIC_READ, FILE_SHARE_READ or
FILE_SHARE_WRITE, nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0)

if H <> INVALID_HANDLE_VALUE then
try
ImageDebugInformation := MapDebugInformation(H, PChar(DLLName), nil, 0)

if ImageDebugInformation <> nil then
try
arr := ImageDebugInformation^.ExportedNames

fc := 0

for I := 0 to ImageDebugInformation^.ExportedNamesSize - 1 do
if chararr(arr^) = #0 then
begin
st := PChar(@chararr(arr^)[fc])

if Length(st) > 0 then
List.Add(st)

if (I > 0) and (chararr(arr^)[I - 1] = #0) then
Break

fc := I + 1
end
finally
UnmapDebugInformation(ImageDebugInformation)
end
finally
CloseHandle(H)
end
end
end


procedure TForm1.Button1Click(Sender: TObject)

var
List: TStrings

i: Integer

s: string

begin
List := TStringList.Create

try
ListDLLFunctions('C:/WINNT/system32/psapi.dll', List)

ShowMessage(IntToStr(list.Count) + ' functions in dll')

s := 'List of functions:'

for i := 0 to List.Count - 1 do
s := s + #13#10 + List

ShowMessage(S)

finally
List.Free
end

end


end.

 
不知道参数,知道函数名称也没有用啊~除非你自己用ASM分析~都很难~
 
动态调用是吧?
但是我连函数名称,参数名称都不知道,我将怎么办?
 
楼上的“IT书生”,能发给我一份吗?
strchi@163.com
非常感谢!!
 
楼上的“IT书生”,能发给我一份吗?
glassmao@163.com
非常感谢!!
 
如果你没有这个 DLL 附带的函数或参数声明,那么你只好放弃这个 DLL 。
 
用Delphi或VC自带的工具,好像叫TDump、DataDump吧!
 
后退
顶部