国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

取得某一dll所有輸出函數(shù)名

2019-11-18 18:42:58
字體:
供稿:網(wǎng)友
 

取得某一dll所有輸出函數(shù)名
在uses里加上ImageHlp

PRocedure ListDLLFunctions(DLLName: String; List: TStrings);
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^)[I]=#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;

  ListDLLFunctions('c:/windows/system/Abcsda.dll', List);
  showmessage(inttostr(list.count));
  S := 'List of functions';
  for I := 0 to List.Count - 1 do
    S := S + #13#10 + List[I];
  ShowMessage(S);

  List.Free
end;

//rock
//轉(zhuǎn)載請保留此信息


上一篇:掃雷程序思想講解

下一篇:取得自從開機到現(xiàn)在CPU運行的周期數(shù),超毫秒級的精度

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
學(xué)習(xí)交流
熱門圖片

新聞熱點

疑難解答

圖片精選

網(wǎng)友關(guān)注

主站蜘蛛池模板: 铜山县| 安溪县| 舞阳县| 滕州市| 根河市| 鄂托克前旗| 临泽县| 宝坻区| 海丰县| 同江市| 封丘县| 晋城| 波密县| 浦城县| 杭州市| 会东县| 清丰县| 拜泉县| 大方县| 茶陵县| 临湘市| 原平市| 中超| 越西县| 确山县| 阜平县| 苗栗县| 伊川县| 朝阳市| 廊坊市| 鄄城县| 玛纳斯县| 板桥市| 衡水市| 苍南县| 太和县| 莱州市| 九龙坡区| 隆尧县| 安达市| 华亭县|