Файл: ...\Samples\Solution\Winapi\Systime.scx

Данный пример демонстрирует вызов Windows API функции GetSystemTime. GetSystemTime заполнят структуру двух байтными (WORD) (16-битовое целое без знака) значениями с информацией о системном времени.

C Функция Объявления и Описание Структуры

  CopyCode imageCopy Code
VOID GetSystemTime(
    LPSYSTEMTIME lpSystemTime    // адрес структуры системного времени  
   );   

Это - описание структуры:

  CopyCode imageCopy Code
typedef struct _SYSTEMTIME {
    WORD wYear; 
    WORD wMonth; 
    WORD wDayOfWeek; 
    WORD wDay; 
    WORD wHour; 
    WORD wMinute; 
    WORD wSecond; 
    WORD wMilliseconds; 
} SYSTEMTIME; 

Вызов данной Функции в Visual FoxPro

Следующий Visual FoxPro код передает GetSystemTime ссылку на символьную переменную, которая заполняется двухбайтныме значениями.

  CopyCode imageCopy Code
* Visual FoxPro Code: cmdSystemTime.Click
DECLARE INTEGER GetSystemTime IN win32api STRING @
cBuff=SPACE(40)

GetSystemTime(@cBuff)

Чтобы извлечь информацию из символьной переменной cBuff, следующий код конвертирует 8-битовые ASCII символы для года и месяца в 16-битовые эквиваленты.

  CopyCode imageCopy Code
THIS.Parent.lblYear.Caption = ALLTRIM(STR(ASC(SUBSTR(cBuff,2)) * 256 + ASC(SUBSTR(cBuff,1))))

THIS.Parent.lblMonth.Caption = MONTH_LOC + ALLTRIM(STR(ASC(SUBSTR(cBuff,4)) * 256 + ASC(SUBSTR(cBuff,3))))

Смотрите Также