HOME    FORUMS    MEMBERS    RECENT POSTS    LOG IN  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 17.06.2008, 16:06
0verbreaK
Постоянный
Регистрация: 30.04.2008
Сообщений: 323
Провел на форуме:
379101

Репутация: 136
По умолчанию

Цитата:
И надо что так что бы открывалась типо на проге кнопка лоад на неё нажимаеш и прога запускает тот длл который с ней в одной папке.. Например:
Надо знать, что экспортировать из библиотеки dll, то есть какие функции экспортные.

Код:
// Есть экспортная функция, которая заранее известна и находится в dll 
// вот её прототип
f: function (p: PChar; b: Boolean): Boolean;

// Вот эта функция осуществляет загрузку dll библиотеки
// в адресное пространство вашей программы
procedure Call(DllName, ProcName: PChar); 
var 
  hModule: THandle; 
  P: Pointer; 
begin 
  f := NIL;  
  hModule := LoadLibrary(DllName); 
  if hModule <> 0 then p := GetProcAddress(hModule, ProcName); 
  if p <> NIL then f('ЗАРАНЕЕ_ИЗВЕСТНАЯ_ЭКСПОРТИРУЕМАЯ_ФУНКЦИЯ', false); 
end;
В итоге получается следующее

Код:
var
  Form1: TForm1;
  // Есть экспортная функция, которая заранее известна и находится в dll
// вот её прототип
  f: function (p: PChar; b: Boolean): Boolean;
implementation

{$R *.dfm}


// Вот эта функция осуществляет загрузку dll библиотеки
// в адресное пространство вашей программы
procedure Call(DllName, ProcName: PChar);
var
  hModule: THandle;
  P: Pointer;
begin
  f := NIL;
  hModule := LoadLibrary(DllName);
  if hModule <> 0 then p := GetProcAddress(hModule, ProcName);
  if p <> NIL then f('ЗАРАНЕЕ_ИЗВЕСТНАЯ_ЭКСПОРТИРУЕМАЯ_ФУНКЦИЯ', false);
end;


procedure TForm1.Button1Click(Sender: TObject);
begin
  Call('1.dll', 'ЗАРАНЕЕ_ИЗВЕСТНАЯ_ЭКСПОРТИРУЕМАЯ_ФУНКЦИЯ');
end;
 
Ответить с цитированием

  #2  
Старый 17.06.2008, 16:08
krypt3r
Познавший АНТИЧАТ
Регистрация: 27.04.2007
Сообщений: 1,044
Провел на форуме:
3660186

Репутация: 905


По умолчанию

Снайпер, ты как-то мысли коряво свои излагаешь.
Цитата:
Ну с dll'кой не получается...
Это ты шеллэкзекутом длл открываешь? о_О Напиши обработчик нажатия на кнопку, в начале кода заюзай LoadLibrary, в конце FreeLibrary, если либа тебе не нужна. Кстати, хочу посоветовать заглянуть в документацию Delphi, там написано, как юзать динамическую загрузку библиотек
 
Ответить с цитированием

  #3  
Старый 17.06.2008, 16:10
0verbreaK
Постоянный
Регистрация: 30.04.2008
Сообщений: 323
Провел на форуме:
379101

Репутация: 136
По умолчанию

Горазда проще работать с библиотекой вот так:

Код:
var
  Form1: TForm1;
  // прототип вызываемой функции
  function func1(p:PChar):Boolean;stdcall; external '1.dll';
implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
  // вызываем 
func1('ЗАРАНЕЕ_ИЗВЕСТНАЯ_ЭКСПОРТИРУЕМАЯ_ФУНКЦИЯ');
end;
 
Ответить с цитированием

  #4  
Старый 17.06.2008, 16:20
SNAIPER ShoT
Познающий
Регистрация: 24.06.2007
Сообщений: 36
Провел на форуме:
177842

Репутация: 5
Отправить сообщение для SNAIPER ShoT с помощью ICQ
По умолчанию

Цитата:
Сообщение от 0verbreaK  
Горазда проще работать с библиотекой вот так:

Код:
var
  Form1: TForm1;
  // прототип вызываемой функции
  function func1(p:PChar):Boolean;stdcall; external '1.dll';
implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
  // вызываем 
func1('ЗАРАНЕЕ_ИЗВЕСТНАЯ_ЭКСПОРТИРУЕМАЯ_ФУНКЦИЯ');
end;
Вот такой принцип нужен.. -->Link<--
 
Ответить с цитированием

  #5  
Старый 17.06.2008, 16:51
0verbreaK
Постоянный
Регистрация: 30.04.2008
Сообщений: 323
Провел на форуме:
379101

Репутация: 136
По умолчанию

Цитата:
Сообщение от SNAIPER ShoT  
Вот такой принцип нужен.. -->Link<--
Так и есть, объясни лучше, dll твоя или чужая?
 
Ответить с цитированием

  #6  
Старый 17.06.2008, 17:14
SNAIPER ShoT
Познающий
Регистрация: 24.06.2007
Сообщений: 36
Провел на форуме:
177842

Репутация: 5
Отправить сообщение для SNAIPER ShoT с помощью ICQ
По умолчанию

чужая...
и когда запускаю уже прогу она пишет всякую хню и закрывается. =(
 
Ответить с цитированием

  #7  
Старый 17.06.2008, 19:28
0verbreaK
Постоянный
Регистрация: 30.04.2008
Сообщений: 323
Провел на форуме:
379101

Репутация: 136
По умолчанию

Цитата:
Сообщение от SNAIPER ShoT  
чужая...
и когда запускаю уже прогу она пишет всякую хню и закрывается. =(
Так ты должен знать, что экспортировать из библиотеки dll. Что конкретно надо сделать? Что бы твоя программа вызвали некоторую функцию из библы, правильно? что за dll'ка.
 
Ответить с цитированием

  #8  
Старый 17.06.2008, 20:15
zl0y
Banned
Регистрация: 13.09.2006
Сообщений: 523
Провел на форуме:
2869410

Репутация: 925


Отправить сообщение для zl0y с помощью ICQ
По умолчанию

Для *.exe файлов лучше WinExec('1.exe',SW_SHOW);
 
Ответить с цитированием

  #9  
Старый 17.06.2008, 20:17
SNAIPER ShoT
Познающий
Регистрация: 24.06.2007
Сообщений: 36
Провел на форуме:
177842

Репутация: 5
Отправить сообщение для SNAIPER ShoT с помощью ICQ
По умолчанию

Цитата:
Сообщение от zl0y  
Для *.exe файлов лучше WinExec('1.exe',SW_SHOW);
А по подробнее мона?
 
Ответить с цитированием

  #10  
Старый 17.06.2008, 20:16
SNAIPER ShoT
Познающий
Регистрация: 24.06.2007
Сообщений: 36
Провел на форуме:
177842

Репутация: 5
Отправить сообщение для SNAIPER ShoT с помощью ICQ
По умолчанию

эта dll'ka просто должна влезть в другой процесс. Тоесть когда я нажимаю на лоад мой exe должен прятатся в Древо процессов... Вот а dll'ka просто должна загружатся вся в процес hl.exe мож кто знает такой.
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Wi-Fi, BT] Задай вопрос - получи ответ! Alexsize Беспроводные технологии/Wi-Fi/Wardriving 2568 25.04.2026 12:58
[jQuery] - Задай вопрос, получи ответ Isis PHP 62 25.12.2009 03:25



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ