Надо знать, что экспортировать из библиотеки dll, то есть какие функции экспортные. Code: // Есть экспортная функция, которая заранее известна и находится в 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; В итоге получается следующее Code: 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;
Снайпер, ты как-то мысли коряво свои излагаешь. Это ты шеллэкзекутом длл открываешь? о_О Напиши обработчик нажатия на кнопку, в начале кода заюзай LoadLibrary, в конце FreeLibrary, если либа тебе не нужна. Кстати, хочу посоветовать заглянуть в документацию Delphi, там написано, как юзать динамическую загрузку библиотек
Горазда проще работать с библиотекой вот так: Code: var Form1: TForm1; // прототип вызываемой функции function func1(p:PChar):Boolean;stdcall; external '1.dll'; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin // вызываем func1('ЗАРАНЕЕ_ИЗВЕСТНАЯ_ЭКСПОРТИРУЕМАЯ_ФУНКЦИЯ'); end;
в Uses добавь ShellAPI , а в обработчик события begin ShellExecute (Handle, 'OPEN',PChar ('www.ya.ru'), nil, nil, SW_SHOWNORMAL); end; И будет тебе счастье.
Так ты должен знать, что экспортировать из библиотеки dll. Что конкретно надо сделать? Что бы твоя программа вызвали некоторую функцию из библы, правильно? что за dll'ка.
эта dll'ka просто должна влезть в другой процесс. Тоесть когда я нажимаю на лоад мой exe должен прятатся в Древо процессов... Вот а dll'ka просто должна загружатся вся в процес hl.exe мож кто знает такой.
Перехват API функций. http://www.wasm.ru/article.php?article=apihook_1 http://www.wasm.ru/article.php?article=apihook_2 http://www.wasm.ru/article.php?article=apihook_3 ЗЫ, мне кажется это не для новичков.
На винапи в данном случае я думаю будет очень легко. Читаем файл в массив байтов через ReadFile(), потом шифруем побайтово после чего записываем массив в файл через WriteFile
всем прив! вопрос такой: пишу прогу, для нее необходим юнит Ariphm.dcu, в комплекте с Борланд Делфи7 он не идет, гугл не помогает. подскажите плз, где его взять? заранее спс )
Nightmarе Assembler. Простейший алгоритм шифрования строк Просто всавь его в процедуру... Примерно так: Code: procedure code; stdcall; var bufsize: DWORD; buffer: byte; asm pushad mov ecx, bufsize mov esi, 0 L1: xor buffer[esi], KEY inc esi loop L1 popad ret ...................... end;
Ребята помогите пожалуйста. Суть задачи, нужно из Label.Caption сохранить данные в файл, это у меня получилось быстро, опыт работы с паскалем имею, но мне хочется, чтобы путь не был сразу прописан, и чтобы его не вводить в строку edit, а чтобы была кнопка "Обзор" после нажатия которой, появлялось окошко windows где можно было бы выбрать путь, куда сохранять файл. Зарание спасибо.
2 Dr.Bodja Code: procedure TForm1.BitBtn1Click(Sender: TObject); var Fil:TextFile; SaveDialog1:TSaveDialog; begin SaveDialog1:=TSaveDialog.Create(nil); if SaveDialog1.Execute then begin assignfile(Fil,SaveDialog1.FileName); //...// end; SaveDialog1.Free; end;