Aziz, Вот программка, которая конвертирует dll в код на паскале. http://forum.hiasm.com/getfile/38610
В папке архива Example лежит Bass.pas переделанный при помощи этой программы.
Его надо кинуть в c:\HiAsm\Elements\Delphi\code\
Туда-же надо кинуть DLLLoader.pas
После этого все компоненты Bass будут работать без bass.dll
(переименуй, на всякий пожарный, старый bass.pas!!!)
Как пользоваться:
1. Из скрипта, будем тренироваться на Bass_old.pas в папке архива Example, нужно скопировать строки,
где определены функции dll и вставит их в левый Memo, нажать кнопку и выбрать bass.dll.
Например:
function BASS_SetConfig(option, value: DWORD): BOOL; stdcall; external bassdll;
function BASS_GetConfig(option: DWORD): DWORD; stdcall; external bassdll;
....
В папке появятся файлы.
2. Скопировать всё из файла pointers.txt и заменить
const
bassdll = 'bass.dll';
function BASS_SetConfig(option, value: DWORD): BOOL; stdcall; external bassdll;
function BASS_GetConfig(option: DWORD): DWORD; stdcall; external bassdll;
на
VAR bassDLL:TDLLLoader; // строка из файла bass.pas, или одноимённого dll.
BASS_SetConfig: function(option, value: DWORD): BOOL; stdcall;
BASS_GetConfig: function(option: DWORD): DWORD; stdcall;
Или удалит объявления функций dll, а содержимое файла pointers.txt вставить перед implementation.
Если предполагается использовать полученный файл твой_dll.pas, как uses kol,Share,твой_dll.pas,DLLLoader;
строку VAR bassDLL:TDLLLoader; надо оставить в твой_dll.pas
3. В uses твоего скрипта надо прописать uses uses kol,Share,твой_dll.pas,DLLLoader;
Либо скопировать содержимое твой_dll.pas в конец скрипта а в uses прописать uses kol,Share,DLLLoader;
Если в твоём скрипте dll загружается динамически то этого ничего не надо делать, просто прописать uses kol,Share,твой_dll.pas,DLLLoader;
и убрать стоку FSciDllHandle := LoadLibrary('SciLexer.dll'); из твоего скрипта.
Пример: https://yadi.sk/d/kfMvnXj83UcdY9
Ответов: 2059
Рейтинг: 132
|
|||
карма: 6 |
|
Редактировалось 2 раз(а), последний 2019-02-21 04:19:19