Преобразовать c функцию времени delphi

Код C выглядит следующим образом;

clock_t clock_start, clock_end;

      clock_start = clock();

      if ((pass = create_pass(100, time(NULL))) == NULL)
         crate_pass_err("passerror");

Что именно здесь время?

я делаю с делфи;

function create_pass(sz:DWORD;Sd:DWORD):Pointer;stdcall;external DLL;

start:=gettickcount;
DecodeTime(now, hours, mins, secs, milliSecs);
timeread:= strtoint(FormatDateTime('NNSSZZZ',time));

    pass:=create_pass(100,timeread); // timeread or millisecs or start ?

Какой из них даст тот же результат? Или есть другое решение?

edit: результаты, которые я получаю в выводе программы, не совсем совпадают. Что именно делает «время» в коде C? Я пытаюсь найти это. (вывод кода c: "stacksample", вывод кода delphi "%Oê^%O" Я пытаюсь преобразовать свою программу паролей в Delphi)


person csorusu    schedule 03.04.2020    source источник


Ответы (1)


time() — это функция C, которая обычно возвращает количество секунд, прошедших с эпохи Unix, 1 января 1970 г., 00:00 UTC (я говорю обычно, потому что значение, фактически возвращаемое time(), не требуется стандартом C, но большинство< /em> реализации выполняются таким образом).

Перевод Delphi кода C, который вы показали, будет выглядеть примерно так:

uses
  ..., DateUtils;

var
  clock_start, clock_end: DWORD;
begin
  ...
  clock_start := GetTickCount;
  pass := create_pass(100, DWORD(DateTimeToUnix(Now, False)));
  if (pass = nil) then
    crate_pass_err('passerror');
  ...
  clock_end := GetTickCount;
  ...
end;
person Remy Lebeau    schedule 03.04.2020