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

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

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

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

Получение списка экспорта dll

Советы » DLL » Получение списка экспорта dll

{ **** UBPFD *********** by delphibase.endimus.com ****
>> Получение списка экспорта dll

Функция GetImageFunctionList возвращает список всех экспортируемых функций dll
FileName - имя dll
Strings - объетк, в который будут занесен список экспорта.
ВАЖНО! Тестировано только под NT4

Зависимости: Windows, ImageHlp
Автор:       Mystic, mystic2000@newmail.ru, ICQ:125905046, Харьков
Copyright:   Mystic
Дата:        21 апреля 2002 г.
***************************************************** }

function

EnumSymbols(SymbolName: PChar; SymbolAddress, SymbolSize: ULONG; Strings: Pointer): Bool; stdcall

; begin

TStrings(Strings).Add(SymbolName); Result := True; end

; function

GetImageFunctionList(const

FileName: string

; Strings: TStrings): Boolean; var

Handle: THandle; hProcess: THandle; VersionInfo: TOSVersionInfo; begin

Strings.Clear; Result := False; SymSetOptions(SYMOPT_UNDNAME or

SYMOPT_DEFERRED_LOADS); VersionInfo.dwOSVersionInfoSize := SizeOf(VersionInfo); if

not

GetVersionEx(VersionInfo) then

Exit; if

VersionInfo.dwPlatformId = VER_PLATFORM_WIN32_WINDOWS then

hProcess := GetCurrentProcessId else

hProcess := GetCurrentProcess; if

not

SymInitialize(hProcess, nil

, True) then

Exit; try

Handle := LoadLibrary(PChar(FileName)); if

Handle = 0 then

Exit; try

if

not

SymLoadModule(hProcess, 0, PChar(FileName), nil

, Handle, 0) then

Exit; try

if

not

SymEnumerateSymbols(hProcess, Handle, EnumSymbols, Strings) then

Exit; finally

SymUnloadModule(hProcess, Handle); end

; finally

FreeLibrary(Handle); end

; finally

SymCleanup(hProcess); end

; Result := True; end

;

Пример использования:

if

not

GetImageFunctionList('kernel32.dll', ListBox1.Items) then

raise

Exception.Create('Произошла ошибка');

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

Категории

Статьи

Советы

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