【问题标题】:Convert c time function delphi转换c时间函数delphi
【发布时间】:2020-04-03 15:59:47
【问题描述】:

C 代码如下所示;

clock_t clock_start, clock_end;

      clock_start = clock();

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

这里的时间到底是什么时候?

我用delphi做的;

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 )

【问题讨论】:

    标签: c delphi typeconverter


    【解决方案1】:

    time() 是一个 C 函数,通常返回自 Unix 纪元 1970 年 1 月 1 日 00:00 UTC 以来经过的秒数(我说 通常因为time() 实际返回的值不是 C 标准强制要求的,但大多数 实现都是以这种方式完成的)。

    您展示的 C 代码的 Delphi 翻译如下所示:

    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;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-04
      • 2015-07-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多