ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.

22.06.2008, 17:34
|
|
Познавший АНТИЧАТ
Регистрация: 29.04.2007
Сообщений: 1,189
Провел на форуме: 5749763
Репутация:
1680
|
|
Ещё вопрос, вот код который подгружает DLL и использует её возможности:
Код:
procedure CSCA1(DataAddress:pointer; DataSize:DWORD; Password:PChar); stdcall; external ‘C:\CSCA1.DLL ‘;
procedure TForm1.Button1Click(Sender: TObject);
var
FH,FMH:THandle;
DataAddr:pointer;
FSize:DWORD;
begin
if not OpenDialog1.Execute then exit;
FH:=CreateFile(pchar(OpenDialog1.FileName), GENERIC_ALL, FILE_SHARE_READ,0, OPEN_EXISTING, 0, 0);
FSize:=GetFileSize(FH,nil);
FMH:=CreateFileMapping(FH,0,PAGE_READWRITE,0,FSize,”);
DataAddr:=MapViewOfFile(FMH,FILE_MAP_WRITE,0,0,FSize);
CSCA1(DataAddr,FSize,pchar(Edit1.Text));
UnmapViewOfFile(DataAddr);
CloseHandle(FMH);
CloseHandle(FH);
end;
Мне нужно сначало извлечь из RES файла эту самую DLL, а уж потом её подключить и заюзать.
Делаю так:
Код:
type
TCSCA1 = procedure (DataAddress:pointer; DataSize:DWORD; Password:PChar); stdcall;
var
hDll: DWORD;
CSCA1: TCSCA1;
begin
тут команда на извлечение DLL
hDll := LoadLibrary('C:\CSCA1.DLL');
CSCA1 := GetProcAddress(hDll, 'CSCA1.DLL');
CSCA1(DataAddr,FSize,pchar(Edit1.Text));
FreeLibrary(hDll);
Компилится нормально, но вылетает ошибка:
Этой DLL`ke надо передать только:
CSCA1(DataAddr,FSize,pchar(Edit1.Text));
на выполнение и всё... вот только где ошибка...
|
|
|
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|