Delphi UDF函数为C

时间:2015-07-30 06:43:12

标签: c delphi date types udf

我试图将以下UDF函数从Delphi重写为C但我不知道应该使用哪种参数类型而不是PISC_QUAD以及如何从param值中提取月份数。

function GetMonthShortName(ib_date: PISC_QUAD): PAnsiChar; cdecl; export;
var
  tm_date: tm;
begin
  isc_decode_date(ib_date, @tm_date);
  case tm_date.tm_mon of
     0: result := PAnsiChar('Jan');
     1: result := PAnsiChar('Feb');
     2: result := PAnsiChar('Mar');
     3: result := PAnsiChar('Apr');
     4: result := PAnsiChar('May');
     5: result := PAnsiChar('June');
     6: result := PAnsiChar('July');
     7: result := PAnsiChar('Aug');
     8: result := PAnsiChar('Sept');
     9: result := PAnsiChar('Oct');
    10: result := PAnsiChar('Nov');
    11: result := PAnsiChar('Dec');
    else result:=nil;
  end;
end;

1 个答案:

答案 0 :(得分:1)

Wed 1 Jul Thu 2 Jul Fri 3 Jul Sat 4 Jul Sun 5 Jul Mon 6 Jul Tue 7 Jul Wed 8 Jul Thu 9 Jul Fri 10 Jul Sat 11 Jul Sun 12 Jul Mon 13 Jul Tue 14 Jul Wed 15 Jul Thu 16 Jul Fri 17 Jul Sat 18 Jul Sun 19 Jul Mon 20 Jul Tue 21 Jul Wed 22 Jul Thu 23 Jul Fri 24 Jul Sat 25 Jul Sun 26 Jul Mon 27 Jul Tue 28 Jul Wed 29 Jul Thu 30 Jul Fri 31 Jul Sat 1 Aug Sun 2 Aug Mon 3 Aug Tue 4 Aug Wed 5 Aug Thu 6 Aug PISC_QUAD。也就是指向^ISC_QUAD的指针。

在C中ISC_QUAD

以完全相同的方式提取月份数。调用ISC_QUAD*作为输入传递isc_decode_date,然后读取输出结构的ISC_QUAD*字段。

tm_mon