Тема: Указатели
Показать сообщение отдельно
  #1  
Старый 06.04.2008, 22:25
Аватар для KOOL
KOOL KOOL вне форума
Активный
 
Регистрация: 06.01.2008
Адрес: Рязань
Сообщения: 306
Версия Delphi: 2009
Репутация: 6150
Печаль Указатели

Внедряю в прогу шифрование, алгоритмы в dll, запутался в указателях и плагины не работают, если в красной строчке не заменить str2 и pass на str и PChar(Pass), а если заменить то не работает встроенный алгоритм...
Подскажите где нужны указатели, а где просто строки
Вот схема загрузки:
Код:
...
function Plug.DeCodeLine(Line, Pass : PChar) : PChar;//функция для плагина
begin
  Result := '';
  If @DEC <> nil Then
    Result := DEC(Line, Pass);
end;
...
function DeCodeLine(Txt, pass : string) : string;//встроенный алгоритм
Var i,j : Integer;
begin
  For i := 1 To Length(Txt) Do
      Begin
        <шифровать>
      End;
  Result := Txt;
end;
...
function DeCodeLinePlugin(Txt, Pass, FName : string) : string;
begin
Result := Txt;
  If  <нужныерасширения> Then//если расширения внутреннего алгоритма
    begin
      Result := DeCodeLine(Txt, Pass);
      Exit;
    end;
...
   Result := Plug(Form1.PlugList.Items[i]).DeCodeLine(PChar(Txt), PChar(Pass));//если расширение плагина
...
end;
...
repeat
...
    AssignFile(InFile, FileName);
    Reset(InFile);
    Read(InFile, str);
    str2 := Copy(str, 1, Length(Str));
    CloseFile(InFile);
    ns := 'Секретный шифр';
    If Pos(ns, DecodeLinePlugin(str2, Pass, FileName))=0 Then
      MessageBox(Form1.Handle, 'Неверный пароль!', 'Ошибка', MB_OK Or MB_ICONERROR);
  until(Pos(ns, DecodeLinePlugin(str, Pass, FileName))<>0);
...
З.Ы. Алгоритмы в плагинах полностью работоспособны
Ответить с цитированием