Как сделать калькулятор в Delphi?

Delphi - объектно-ориентированный язык программирования, разработанный компанией Borland в 1995 году. Он основан на языке программирования Pascal, но имеет более расширенные возможности и добавлены новые функции.

Как Delphi реализует многоплатформенную разработку?

Delphi является интегрированной средой разработки (IDE), которая позволяет разрабатывать программное обеспечение для различных платформ, включая Windows, macOS, Android и iOS. Delphi достигает многоплатформенности с помощью...

Получить экспортируемые из DLL функции

Советы » DLL » Получить экспортируемые из DLL функции

uses


   ImageHlp;

 procedure

ListDLLExports(const

FileName: string

; List: TStrings);
 type


   TDWordArray = array

[0..$FFFFF] of

DWORD;  var


   imageinfo: LoadedImage;    pExportDirectory: PImageExportDirectory;    dirsize: Cardinal;    pDummy: PImageSectionHeader;    i: Cardinal;    pNameRVAs: ^TDWordArray;    Name: string

;  begin


   List.Clear;    if

MapAndLoad(PChar(FileName), nil

, @imageinfo, True, True) then


   begin

     try

       pExportDirectory := ImageDirectoryEntryToData(imageinfo.MappedAddress,          False, IMAGE_DIRECTORY_ENTRY_EXPORT, dirsize);        if

(pExportDirectory <> nil

) then


       begin

         pNameRVAs := ImageRvaToVa(imageinfo.FileHeader, imageinfo.MappedAddress,            DWORD(pExportDirectory^.AddressOfNames), pDummy);          for

i := 0 to

pExportDirectory^.NumberOfNames - 1 do

         begin

           Name := PChar(ImageRvaToVa(imageinfo.FileHeader, imageinfo.MappedAddress,              pNameRVAs^[i], pDummy));            List.Add(Name);          end

;        end

;      finally

       UnMapAndLoad(@imageinfo);      end

;    end

;  end

;

 procedure

TForm1.Button1Click(Sender: TObject);  var


   List: TStrings;    i: Integer;    s: string

;  begin


   List := TStringList.Create;    try


     ListDLLExports('C:WINDOWSSYSTEM32rowseui.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[i];      ShowMessage(S);    finally

     List.Free    end

;  

Другое по теме:

Категории

Статьи

Советы

Copyright © 2024 - All Rights Reserved - www.delphirus.com