有一个动态连接库,不知道它里面有什么函数,怎么才能知道?
解决方案 »
- 谁知道怎么做出像Windows播放器那样把窗口缩小到任务栏?
- 如何在本机上面通过IP访问sql数据库
- 来者给分!两台机器同时录数据,编号为主健,并且自动产生,有可能产生重复!如何避免?
- 如何读取dcu中的类型信息?
- combobox的问题,关于数据库,COME IN PLEASE !~
- 窗体的问题?jiandanma
- zzllabc(龙):过来凑钱买酒,人生失意也须尽欢啊!
- 请教大虾,怎么在linux下装驱动程序??
- 在FormCreate下可执行在OnCLick下不能正确执行的问题
- 如何知道是否连上INTERNET网
- 请教,在delphi6中可否用sql语句查询access数据库。
- 如何使用户在组合框中一按键就自动弹出下拉框
function GetDLLFunctions(DLLName: string): string;
type CharArray = array [0..$FFFFFF] of Char;
var ImageDebugInformation: PImageDebugInformation;
vHandle: THandle;
FunName: string;
Point: Pointer;
i, FunCount: integer;
begin
Result := '';
DLLName := ExpandFileName(DLLName);
if FileExists(DLLName) then
begin
vHandle := CreateFile(PChar(DLLName), GENERIC_READ, FILE_SHARE_READ or FILE_SHARE_WRITE, nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
if vHandle<>INVALID_HANDLE_VALUE then
try
ImageDebugInformation := MapDebugInformation(vHandle, PChar(DLLName), nil, 0);
if ImageDebugInformation<>nil then
try
Point := ImageDebugInformation^.ExportedNames;
FunCount := 0;
for i:=0 to Integer(ImageDebugInformation^.ExportedNamesSize-1) do
if CharArray(Point^)[i]=#0 then
begin
FunName := PChar(@CharArray(Point^)[FunCount]);
if Length(FunName)>0 then Result := Result + FunName + #13;
if (i>0) and (CharArray(Point^)[i-1]=#0) then Break;
FunCount := i + 1
end
finally
UnmapDebugInformation(ImageDebugInformation)
end
finally
CloseHandle(vHandle)
end
end
end;
W32DASM: http://www.exetools.com/files/disassemblers/wdasm89.zip
就像你自己写的DLL,你愿意别人拿来就用吗?参数都得要有相应的文档才有的,
现在还没有能看参数的工具:(