国产探花免费观看_亚洲丰满少妇自慰呻吟_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)注

主站蜘蛛池模板: 海兴县| 温泉县| 武城县| 大荔县| 油尖旺区| 安化县| 永济市| 白水县| 双鸭山市| 甘孜县| 平山县| 武安市| 白河县| 太保市| 峨眉山市| 阜阳市| 鹤壁市| 宿州市| 武鸣县| 泗水县| 同心县| 南投市| 长子县| 昌邑市| 沙洋县| 越西县| 上思县| 遂川县| 项城市| 习水县| 新田县| 望奎县| 阜康市| 类乌齐县| 西盟| 惠东县| 盐源县| 武胜县| 麟游县| 剑阁县| 博白县|